Report abuse

class common::location {
   $address      = extlookup("address")
   $aptproxy     = extlookup("aptproxy")
   $citystate    = extlookup("citystate")
   $nameservers  = extlookup("nameservers")
   $nodenets     = extlookup("nodenets")
   $nscaserver   = extlookup("nscaserver")
   $puppetserver = extlookup("puppetserver")
   $trustednets  = extlookup("trustednets")
}

class nsca::client { 
   package {
      "libmcrypt4":     ensure => "present";
      "nagios-plugins": ensure => "present";
   }

   cron {
      "check_psv_cronjob":
         command     => "/usr/lib/nagios/plugins/check_psv",
         environment => "MAILTO=''",
         minute      => "*/3",
         require     => File["check_psv"],
         user        => "root",
   }

   file {
      "check_psv":   
         content => template("nsca/check_psv.erb"),
         group   => "root",
         ensure  => "present",
         mode    => "750",
         owner   => "root",
         path    => "/usr/lib/nagios/plugins/check_psv",
         require => [ Class["common::location"], File["send_nsca"], Package["libmcrypt4"], Package["nagios-plugins"] ];
      "send_nsca":   
         ensure  => "present",
         group   => "root",
         mode    => "750",
         owner   => "root",
         path    => "/usr/lib/nagios/plugins/send_nsca",
         require => [ File["/etc/send_nsca.cfg"], Package["libmcrypt4"], Package["nagios-plugins"] ],
         source  => "puppet://$server/nsca/send_nsca.$lsbdistcodename.$architecture";
      "/etc/send_nsca.cfg":
         ensure  => "present",
         group   => "root",
         mode    => "640",
         owner   => "root",
         source  => "puppet://$server/nsca/send_nsca.cfg";
   }
}