class nagios { package { nagios: install => latest; nagios-plugins: install => latest; } # FIXME i need to guarantee the user and group exist file { ["/var/nagios", "/var/nagios/rw", "/var/nagios/collection", "/var/nagios/bin"]: owner => nagios, group => nagios, mode => 755, create => directory } remotefile { "/etc/nagios": mode => 644, recurse => true, source => "config/apps/nagios"; "/var/nagios": mode => 644, recurse => true, source => "home/nagios" } } class nagiosserver inherits nagios { service { "nagioscentral": running => true, subscribe => file["/etc/nagios"] } } class nagiosclient inherits nagios { service { "nsca": running => true } service { "nagioslocal": running => true, subscribe => file["/etc/nagios"] } file { "/var/nagios/bin/nagaccept": mode => 755, owner => root, group => root, source => "/usr/local/scripts/nagaccept" } exec { "/usr/local/scripts/nagkeys -u nagios": } } # FIXME i don't have the ability to specify that the cfengine server should # be a certain way... # nagcopy.cfengine_server:: # /dist/naginator/bin dest=/dist/code/scripts # mode=755 # owner=root # group=root # r=inf # backup=false