一、puppet自动认证:

 
  
  1. 首先我们先来看一个问题,新服务器可以通过kickstart自动安装完,并且自动安装完puppet相关包,安装完后客户端会请求证书,然后服务器会给客户端颁发证书,如果手动颁发很麻烦,如下配置可以让服务器自动验证。  
  2.  
  3. 前提是配置好hosts  
  4.  
  5. Master   192-168-0-130.APP.com  
  6.  
  7. Client   192-168-0-131.APP.com  
  8.  
  9. 在服务器端的puppet.conf配置文件里面[main]下方加上autosign = true   
  10.  
  11. 重启puppetmaster服务即可!  
  12.  
  13. 这样在客户端执行puppetd --server=192-168-0-130.APP.com --test 服务器端会自动认证!  
  14.  

二、重新生成证书:

 
  
  1. 很多时候由于更换主机名,我们需要重新配置认证:  
  2.  
  3. (1)、首先在客户端删除 rm -rf /var/lib/puppet/ssl/文件夹  
  4.  
  5. (2)、然后在服务器端删除客户端的证书:puppetca --clean 192-168-0-131.APP.com 【 192-168-0-131.APP.com 客户端的主机名】  
  6.  
  7. (3)、然后再在客户端执行puppetd --server=192-168-0-130.APP.com --test 即可!  
  8.  

三、配置客户端自动同步:

 
  
  1. 在客户端安装完puppet后,并且认证完后,我们可以看到效果,那怎样让它自动与服务器同步呢?默认多少分钟跟服务器同步呢?怎样修改同步的时间呢,这时候我们需要配置客户端:  
  2.  
  3. (1)、配置puppet相关参数和同步时间:  
  4.  
  5. vi /etc/sysconfig/puppet  
  6.  
  7. PUPPET_SERVER=192-168-0-130.APP.com 服务器mater的host  
  8.  
  9. PUPPET_PORT=8140 访问服务器的8140端口  
  10.  
  11. PUPPET_LOG=/var/log/puppet/puppet.log 本地日志  
  12.  
  13. PUPPET_EXTRA_OPTS=--waitforcert=500  
  14.  
  15. 然后启动 /etc/init.d/puppet start 即可  
  16.  
  17.  (2)、默认配置完毕后,客户端会半个小时跟服务器同步一次,我们可以修改这个时间。 vi  /etc/puppet/puppet.conf 的 [agent]下加入:   
  18.  
  19. runinterval = 60  //代表60秒跟服务器同步一次  
  20.  
  21. 修改完后重启puppet 过一分钟即可看到客户端同步的效果!  
  22.  

 四、puppetrun的使用(puppet kick):

 
  
  1. 当我们配置完puppet服务器端和客户端后,客户端会默认半个小时跟服务器端同步,如果我们需要更新重要文件,是不是得立即生效呢,那有什么好的办法吗?答案:有!  
  2. 在服务器端使用puppetrun这个命令可以给客户端发送一段信号,告诉客户端立刻跟服务器同步,这样就达到我们的目的了!那怎样配置呢?  
  3. (1)、修改客户端上的puppet的配置文件  
  4. vi /etc/puppet/puppet.conf  
  5. 在[agent]后面添加  
  6. listen = true  //这个是让puppet监听8139端口。  
  7. (2)、修改管户端的puppet的/etc/sysconfig/puppet  
  8. vim /etc/sysconfig/puppet  
  9.  
  10. PUPPET_SERVER=192-168-0-130.APP.com  //改为你对应的puppetmaster的主机名。  
  11.  
  12. (3)、新建namespaceauth.conf这个文件,vi /etc/puppet/namespaceauth.conf添加如下内容:  
  13. [puppetrunner]  
  14. allow *  
  15.  
  16. (4)、还需要修改auth.conf。  
  17. 在path /之前添加下内容,加粗部分:  
  18. path /run  
  19. method save  
  20. allow *  
  21. path /  
  22. auth any  
  23. 即可!  
  24. 然后重启客户端:/etc/init.d/puppet restart  
  25. (5)、在服务器端测试一下:执行一下命令  
  26.  
  27. puppetrun -p 10 –host 192-168-0-131.APP.com 后面也可以加多个客户端主机名!  
  28.  
  29. 而且已经发送了信号给客户端!可以去客户端查看一下效果 tail -fn 100 /var/log/puppet/puppet.log 
  30.  
  31. #高版本的puppet没有puppetrun这个命令,可以用如下命令来执行,执行之前跟puppetrun一样需要配置并授权
  32. 提示finished表示发送信号完成,相反failed则表示失败。   
  33. puppet kick -d host 192-168-0-131.APP.com 也可以code 0表示成功。
  34.  
  35. 执行完在/tmp/下新建test.txt文件!puppetrun还有更高级的用法,可以查看puppetrun –help