I just noticed some strange Puppet behaviour. Take a look at this:
class monitoring { define nrpe_command ( $ensure = present, $command, $target = "/etc/nagios/nrpe.d/$title.cfg" ) { file { $target : ensure => file, owner => root, group => root, mode => 0755, content => "command[$title]=$command\n", } } } class puppet { monitoring::nrpe_command {"restart_puppet": command => "/etc/init.d/puppet restart" } }
This is the resulting I’ve got:
testhost:/etc/nagios/nrpe.d# ls puppet.cfg testhost:/etc/nagios/nrpe.d# cat puppet.cfg command[restart_puppet]=/usr/local/bin/restart_puppet_safely.sh testhost:/etc/nagios/nrpe.d#
Somehow, puppet eats everything until the last underscore in the $title variable when using it in the file title, but not when using the variable as content for that file.
Any ideas?