选择更安全的方式执行你的Puppet更新

续前篇 选择更安全的方式注册你的Puppet节点

下面讲解三种更新方式
 
2.7 Puppet更新方式
2.7.1 节点定时更新
[root@agent1 ~]# vim /etc/puppet/puppet.conf
[main]
 server=puppetserver.rsyslog.org  #指向puppetserver服务器
[agent]
 runinterval=5  #前期方便测试可采用客户端自动更新的方式,设置agent 5秒钟去同步
2.7.2 节点离散更新(需要测试)
使用puppet的inline_template功能结合cron任务计划执行agent服务端分散更新
cron { "run-puppet":
command => "/usr/sbin/ puppet agent --server=puppetserver.rsyslog.org --test >/dev/null  2>&1",
minute => inline_template("<%= hostname.hash % 60 %>"),
}
备注:节点数比较多的情况下,为了减轻puppet server端同一时间的压力,可以考虑方式二。
实现原理:根据客户端的主机名做哈希表(每个主机名产生的哈希值具有唯一性),并作为计划任务左右的分钟或者小时,每个客户端会在过去的每小时的不同分钟数运行puppet,这个三列技术是有用的随机任何的cron作业,提高了可能性,因为他们不会互相干扰。Hash生成的数值可以使无限大,上例中只是生成0-60,也就是限制了最大值为60。
2.7.3 服务端推送更新(puppet kick)
1)、修改agent端的主配置文件
[root@agent1 ~]# vim /etc/puppet/puppet.conf
[agent]
listen = true
...
2)、修改/etc/sysconfig/puppet
[root@agent1 ~]# vim /etc/sysconfig/puppet
PUPPET_SERVER=puppetserver.rsyslog.org
...
3)、新建namespaceauth.conf文件
[root@agent1 ~]# vim /etc/puppet/namespaceauth.conf
[puppetrunner]
allow puppetserver.rsyslog.org
4)、修改auth.conf文件(在path /前添加)
[root@agent1 ~]# vim /etc/puppet/auth.conf
path /run
method save
allow puppetserver.rsyslog.org
auth any
path /
auth any
5)、重启agent端
6)、在puppetmaster端执行puppetrun命令测试
[root@puppetserver ~]# puppetrun -p 10 --host agent1.rsyslog.org
Triggering agent1.rsyslog.org
Getting status
status is success
agent1.rsyslog.org finished with exit code 0
Finished
备注:如果主机比较多,可创建hosts.txt文件,然后将需要更新的节点主机名添加到hosts.txt文件中,然后跟上 --host `cat hosts.txt`参数即可

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/f1110b308862ccd5abaea5fb4ae72a56.html