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.