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 puppet-users+unsubscribe@googlegroups.com.
To post to this group, send email to puppet-users@googlegroups.com.
Visit this group at http://groups.google.com/group/puppet-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.