Hello all,

I am trying to write a syslog module for our small puppet installation.
Since I'd like to learn how to write puppet classes/modules I would avoid
modules from puppet labs forge (at least for now).

This module is going to be deployed on RH 5 _and_ 6.
In our infrastructure each RH line (5 or 6) is configured differently:
RH 5 uses sysklogd, RH 6 uses rsyslog.

I have written a class but as you can see it has a lot of redundant code.
Can I use any puppet syntax to make it more elegant (and easier to maintain 
:-) ) ?
Can you suggest anything ?

class syslog::install {
        case $lsbmajdistrelease {
                '5':    {
                                package { "sysklogd":
                                        ensure => present,
                                }
                        }

                '6':    {
                                package { "rsyslog":
                                        ensure => present,
                                }
                        }
        }
}

class syslog::config {
        case $lsbmajdistrelease {
                '5':    {
                                file    { "/etc/syslog.conf":
                                        ensure => present,
                                        owner => 'root',
                                        group => 'root',
                                        mode => 0644,
                                        source => 
"puppet:///modules/syslog/syslog.conf",
                                        require => Class["syslog::install"],
                                        notify => Class["syslog::service"],
                                }
                        }

                '6':    {
                                file    { "/etc/rsyslog.conf":
                                        ensure => present,
                                        owner => 'root',
                                        group => 'root',
                                        mode => 0644,
                                        source => 
"puppet:///modules/syslog/rsyslog.conf",
                                        require => Class["syslog::install"],
                                        notify => Class["syslog::service"],
                                }
                        }
        }
}

class syslog::service {
        case $lsbmajdistrelease {
                '5':    {
                                service { "syslog":
                                        ensure => runing,
                                        enable => true,
                                        require => Class["syslog::config"],
                                }
                        }

                '6':    {
                                service { "rsyslog":
                                        ensure => runing,
                                        enable => true,
                                        require => Class["syslog::config"],
                                }
                        }
        }
}


class syslog {
        include syslog::install, syslog::config, syslog::service
}


Thanks in advance :-)
Przemek

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to