class nrpe {
$nrpe_cfg_dir = $operatingsystem ? {
RedHat => "/etc/nagios",
Solaris => "/opt/csw/etc",
}
$nrpe_log_facility = "daemon"
$nrpe_pid = "/var/run/nrpe.pid"
$nrpe_port = "5666"
$nrpe_server_ip = "127.0.0.1"
$nrpe_user = "nagios"
$nrpe_group = "nagios"
$nrpe_allowed_hosts = "127.0.0.1,<nagios_server_ip>"
$nrpe_dont_blame_nrpe = "0"
$nrpe_command_prefix = "/usr/bin/sudo"
$nrpe_debug = "0"
$nrpe_command_timeout = "60"
$nrpe_connection_timeout = "300"
$nrpe_allow_weak_random_seed = "0"
$nrpe_include = "${nrpe_cfg_dir}/nrpe_commands.cfg"
case $operatingsystem {
RedHat: { $packagelist = [ "nagios-nrpe.${architecture}", "nagios-plugin-nrpe.${architecture}" ] }
Solaris: { $packagelist = [ "nrpe", "nagios_plugins" ] }
}
package { $packagelist:
ensure => installed,
notify => Service["nrpe_service"];
}
service { "nrpe_service":
name => $operatingsystem ? {
RedHat => "nrpe",
Solaris => "cswnrpe",
},
enable => true,
ensure => running,
subscribe => File["nrpe.cfg"],
require => File["nrpe.cfg"];
}
file {
"nrpe.cfg":
name => "${nrpe_cfg_dir}/nrpe.cfg",
owner => "nagios",
group => "nagios",
mode => "640",
backup => false,
ensure => file,
recurse => false,
content => template("nrpe/nrpe.erb"),
require => User["nagios"],
notify => Service["nrpe_service"];
"nrpe_commands.cfg":
name => "${nrpe_cfg_dir}/nrpe_commands.cfg",
owner => "nagios",
group => "nagios",
mode => "640",
backup => false,
ensure => file,
source => "puppet:///nrpe/nrpe_commands.${hostname}.cfg",
recurse => false,
require => [ User["nagios"], File["nrpe.cfg"] ],
notify => Service["nrpe_service"];
"scripts":
path => $operatingsystem ? {
RedHat => "/usr/lib64/nagios/plugins/scripts",
Solaris => "/opt/csw/libexec/nagios-plugins/scripts",
},
owner => "nagios",
group => "nagios",
mode => "550",
backup => false,
ensure => directory,
links => follow,
source => "/var/netshare/pub/nagios_plugins",
recurse => true,
require => [ User["nagios"], File["nrpe_commands.cfg"] ],
notify => Service["nrpe_service"];
}
user {
"nagios":
ensure => present,
require => Group["nagios"];
}
group {
"nagios":
ensure => present;
}
}