Report abuse

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;
        }
}