syslog-ng recipe¶
This is a recipe for installing/configuring syslog-ng on a system, registering the syslog-ng service in SMF, starting syslog-ng, and stopping the standard syslog daemon.
The only generic piece right now is the config file —– everything else is Solaris 10 specific primarily because that is my current focus and I haven’t had time to do anything with other OSes.
# syslog-ng.pp
#
# Class for syslog-ng clients that installs the syslog-ng software, populates a default config file, starts the syslog-ng daemon, and stop the syslog daemon.
#
# Note: This class is NOT for syslog-ng servers (e.g. the centralized loghost).
#
class syslog-ng {
# create syslog-ng.conf file from UCR template
file { "/etc/syslog-ng.conf":
owner => root,
group => root,
mode => 440,
source => "puppet:///dist/apps/syslog-ng/syslog-ng.conf"
}
case $operatingsystem {
solaris: {
# create the syslog-ng package staging directory
file { "/sysprov/dist/apps/syslog-ng":
owner => puppet,
group => puppet,
ensure => directory
}
# copy the syslog-ng package from the puppetmaster
file { "/sysprov/dist/apps/syslog-ng/UCRsyslog-ng-1-6-11":
owner => puppet,
group => puppet,
source => "puppet:///dist/apps/syslog-ng/UCRsyslog-ng-1-6-11",
ensure => present
}
# install UCRsyslog-ng-currentversion
package { "UCRsyslog-ng-1-6-11":
ensure => installed,
provider => sun,
source => "/sysprov/dist/apps/syslog-ng/UCRsyslog-ng-1-6-11",
require => File[ "/sysprov/dist/apps/syslog-ng/UCRsyslog-ng-1-6-11" ]
}
# remove symlinks to UCRsyslog-ng-previousversion
exec { "/inst/pkg/graft/bin/graft -d -D /opt/UCR/UCRsl-ng/syslog-ng" :
refreshonly => true
}
# remove UCRsyslog-ng-previousversion
package { "UCRsl-ng":
ensure => absent,
provider => sun,
}
# create symlinks in /usr/local to UCRsyslog-ng-currentversion
exec { "/inst/pkg/graft/bin/graft -i /opt/UCR/UCRsyslog-ng-1-6-11" :
}
# Copy the SMF related files from the puppetmaster
case $operatingsystemrelease {
"5.10": {
# syslog-ng SMF Manifest
file { "/var/svc/manifest/system/syslog-ng.xml":
owner => root,
group => root,
mode => 555,
source => "puppet:///dist/apps/syslog-ng/syslog-ng.xml",
ensure => present
}
# syslog-ng SMF svc.method
file { "/lib/svc/method/syslog-ng" :
owner => root,
group => root,
mode => 555,
source => "puppet:///dist/apps/syslog-ng/svc.method.syslog-ng",
}
exec { "`svccfg import /var/svc/manifest/system/syslog-ng.xml`" :
}
}
}
}
}
# Start the syslog-ng service
case $operatingsystemrelease {
# for Solaris 10
"5.10": {
service { syslog-ng:
ensure => "running",
}
}
# Stop the standard syslog service
case $operatingsystemrelease {
# for Solaris 10
"5.10": {
service { system-log:
ensure => "stopped",
}
}
}
}