puppetmster
2、配置puppet.conf 注意:这个里面配置了两个certname名称,其中[master]中配置的certname是为所有节点认证用的master名称,[agent]中配置的certname是他本身agent的名称,当然不配置默认是和master的名称是一样的。
[root@puppetmaster ~]# cp /etc/puppet/puppet.conf{,.bak} #备份 [root@puppetmaster ~]# vim /etc/puppet/puppet.conf #注释已经删除 [main] logdir = /var/log/puppet #默认日志存放路径 rundir = /var/run/puppet #pid存放路径 ssldir = $vardir/ssl #证书存放目录,默认$vardir为/var/lib/puppet [agent] classfile = $vardir/classes.txt localconfig = $vardir/localconfig server = puppetmaster.kisspuppet.com #设置agent认证连接master端的服务器名称,注意这个名字必须能够被节点解析 [master] certname = puppetmaster.kisspuppet.com puppetmaster.kisspuppet.com #设置puppetmaster认证服务器名
3、创建site.pp文件
puppet的资源配置文件在服务端的/etc/puppet/manifests目录下,我们需要在该目录下创建一个站点文件site.pp。
site.pp文件是puppet读取所有模块pp文件的开始,在3.0版本以前必须设置,否则服务无法启动。
查看本地证书情况 puppetmaster第一次启动会自动生成证书自动注册自己
这个我们可以在/var/lib/puppet/ssl看到那些证书和key。如下:
ll /var/lib/puppet/ssl
这个目录和/etc/puppet/puppet.conf文件中配置的ssldir路径有关系。
我们也可以查看master端给自己授权的证书文件,如下:
ll /var/lib/puppet/ssl/ca/signed
7.2 agent端申请证书
agent端在第一次连接master端时,会向master端申请证书。如果master端没有授予agent端证书,那么agent端和master端之间的连接是不会建立成功的。
此时agent端会持续等待master端授权证书,并会每隔2分钟去检查master端是否签发证书。
我们现在使用puppet agent –server s.ilanni.com连接master端,如下:
puppet agent –server s.ilanni.com
7.3 master端授权证书
agent端申请证书完毕后,需要我们切换到master端,使用puppet cert命令来对agent端授权证书。
有关puppet cert的使用,我们可以查看pupper cert的帮助信息。如下:
pupper cert
在上图中,puppet cert已经给出如何给一个agent端进行授权证书的例子。
现在我们来查看master端有哪些主机在申请证书,如下:
puppet cert list
通过上图,我们很明显的可以看到c.ilanni.com客户端正在申请证书。
现在我们来给agent端授权证书,使用如下命令:
puppet cert sign c.ilanni.com
注意:如果实际生产环境客户端数量比较多的话,我们可以一次性授权所有证书。如下:
puppet cert sign –all
在master端查看所有已经通过认证的agent端,如下:
puppet cert -all
现在我们再来看看master端给agent端授权的证书文件,如下:
ll /var/lib/puppet/ssl/ca/signed
通过上图,我们可以看出master端授权客户端c.ilanni.com的证书文件是c.ilanni.com.pem。
7.4 查看agent端证书
在master端授权完毕后,我们现在切换到agent端查看授权的证书文件,如下:
ll /var/lib/puppet/ssl/certs
通过上图,我们可以看出agent端的证书文件c.ilanni.com.pem与master端的证书文件是一样的。
7.5 puppet证书问题
在实际的生产环境中,可能会出现已经通过master端认证的agent端主机名被修改或者其他一些误操作,从而导致agent端无法与master端进行正常通信。
当遇到这种情况时,我们一般的处理方法是先删除master端和agent端的相关的认证文件,然后在agent端重新申请证书。
具体操作如下:
agent端,删除/var/lib/puppet/ssl目录,如下:
rm -fr /var/lib/puppet/ssl
master端,删除/var/lib/puppet/ssl/ca/signed目录下的证书文件,如下:
rm -fr /var/lib/puppet/ssl/ca/signed/c.ilanni.com.pem
以上操作完毕后,agent端再次申请证书即可。
[root@puppetmaster ~]# puppet cert --list --all #带+标示已经注册成功 + "puppetmaster.kisspuppet.com" (C0:E3:6B:76:36:EC:92:93:4D:BF:F0:8F:77:00:91:C8) (alt names: "DNS:puppet", "DNS:puppet.kisspuppet.com", "DNS:puppetmaster.kisspuppet.com")
查看监听状态 puppetmaster服务开启后,默认监听TCP 8140端口
[root@puppetmaster ~]# netstat -nlatp | grep 8140 tcp 0 0 0.0.0.0:8140 0.0.0.0:* LISTEN 1976/ruby [root@puppetmaster ~]# lsof -i:8140 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME puppetmas 1976 puppet 5u IPv4 14331 0t0 TCP *:8140 (LISTEN)