为了方便与puppet结合着用,所以接下去原本用源码编译的,统统改成用rpmbuild打包完,在放进自己建的源里面,本文也将说明本地源如何创建。

   文中软件包nrpe,和nagios-plugins均由上篇文章的spec生成。

   老规矩,先上架构图(ps:其实都差不多- -):

   

1.init.pp

  1. import "*" 

 

2.web.pp

  1. class nagios::web ( 
  2.   $nagiospluginsversion="1.4.16-10"
  3.   $nrpeversion="2.13-10" 
  4. ){  
  5.         file {"sa": 
  6.           path    => "/root/sa", 
  7.           ensure  => directory, 
  8.         } 
  9.  
  10.         package {"xinetd": 
  11.           ensure  => present, 
  12.         } 
  13.          
  14.         package {"nagios-plugins": 
  15.           ensure  => $nagiospluginsversion, 
  16.         } 
  17.  
  18.         package {"nrpe": 
  19.           ensure  => $nrpeversion, 
  20.           require => Package["nagios-plugins"], 
  21.         } 
  22.  
  23.         file {"nrpe.cfg": 
  24.           mode      => 0644, 
  25.           owner     => nagios, 
  26.           group     => nagios, 
  27.           path      => "/usr/local/nagios/etc/nrpe.cfg", 
  28.           require   => Package["nrpe"], 
  29.           content   => template('nagios/web-nrpe.erb'), 
  30.           notify    => Service['xinetd'],   
  31.         } 
  32.  
  33.         file {"nrpe": 
  34.           mode      => 0644, 
  35.           owner     => root, 
  36.           group     => root, 
  37.           path      => "/etc/xinetd.d/nrpe", 
  38.           content   => template('nagios/nrpe.erb'), 
  39.           require   => Package["nrpe"], 
  40.           notify    => Service['xinetd'], 
  41.         } 
  42.        
  43.         service {"xinetd": 
  44.           ensure    => running, 
  45.           enable    => true, 
  46.           subscribe => File["nrpe","nrpe.cfg"], 
  47.         } 

 

3,nrpe.erb

  1. # default: on 
  2. # description: NRPE (Nagios Remote Plugin Executor) 
  3. service nrpe 
  4.         flags           = REUSE 
  5.         socket_type     = stream     
  6.           port              = 5666     
  7.         wait            = no 
  8.         user            = nagios 
  9.           group             = nagios 
  10.         server          = /usr/local/nagios/bin/nrpe 
  11.         server_args     = -c /usr/local/nagios/etc/nrpe.cfg --inetd 
  12.         log_on_failure  += USERID 
  13.         disable         = no 
  14.           only_from       = 127.0.0.1 <%= nagios_server %> 

4,nrpe-web.erb

里面就是源码编译出来的nrpe.cfg的内容

5,site.pp 

  1. ########################   for module nagios ######################## 
  2. $nagios_server      = "192.168.10.211" 

设置了nagios_server变量的值

6,node调用

(1),modules.pp

  1. import "nagios" 

(2),site.pp

  1. node /^redis\.\w+\.com$/ { 
  2.     include nagios::web 

当然也可以写进nodes.pp里面设置的节点里


7,创建本地源

我使用的是ftp来做

  1. (1)yum install vsftpd -y  
  2. (2)yum install createrep -y 

然后把nrpe,nagios-plugins软件包复制到/var/ftp/pub下,生成依赖关系

  1. createrepo /var/ftp/pub 

创建ftp.repo

  1. [ftp] 
  2. name=base 
  3. baseurl=ftp://192.168.10.211/pub 
  4. enabled=1 
  5. gpgcheck=0 

最后在

  1. yum makecache 

别忘了防火墙开启ftp端口

在此感谢itnihao大神的提供无私援助!!!