1、自动认证:
如果puppet客户端比较多,每当客户端一个个申请证书的时候,服务端都去一个个手动颁发,那有点麻烦,所以需要配置主动颁发
【服务端】
在服务器端的puppet.conf配置文件里面[main]下方加上autosign = true
重启puppetmaster服务即可!
这样在客户端执行puppetd --server=master --test 服务器端会自动认证!
如图:
192.168.1.69是另外一台客服端,当它像服务端申请证书的时候,由申请到颁发,都是直接执行的,然后也直接更新了test.txt文件了
2、配置客户端自动同步:
在客户端安装完puppet后,并且认证完后,我们可以看到效果,那怎样让它自动与服务器同步呢?默认多少分钟跟服务器同步呢?怎样修改同步的时间呢,这时候我们需要配置客户端:
【客户端】
(1)、配置puppet相关参数和同步时间:
vi /etc/sysconfig/puppet
PUPPET_SERVER=master 服务器mater的host
PUPPET_PORT=8140 访问服务器的8140端口
PUPPET_LOG=/var/log/puppet/puppet.log 本地日志
PUPPET_EXTRA_OPTS=--waitforcert=500
然后启动 /etc/init.d/puppet start 即可
(2)、默认配置完毕后,客户端会半个小时跟服务器同步一次,我们可以修改这个时间。 vi /etc/puppet/puppet.conf 的 [agent]下加入:
runinterval = 60 //代表60秒跟服务器同步一次
修改完后重启puppet 过一分钟即可看到客户端同步的效果!
【重新生成证书】:
很多时候由于更换主机名,我们需要重新配置认证:
(1)、首先在客户端删除 rm -rf /var/lib/puppet/ssl/文件夹
(2)、然后在服务器端删除客户端的证书:puppetca --clean slave9 【 slave9 客户端的主机名】
(3)、然后再在客户端执行puppetd --server=master --test 即可!
另外:
【客户端申请证书时的错误】
证书问题解决:
如果客户机请求证书时出现下面错误:
err: Could not request certificate: Retrieved certificate does not match private key; please remove certificate from server and regenerate it with the current key
Exiting; failed to retrieve certificate and waitforcert is disabled
先到服务器端清除指定客户机的证书
puppetca -c 客户端主机名
然后再到服务器端吊销证书
puppetca -r 客户端主机名
然后在客户机上,mv /var/lib/puppet /tmp
接着在客户机 上请求证书签名
puppetd --test --server puppet
可以查看服务端为哪些客户端颁发了证书