我把puppet master和agent安装在同一台机器上。 当客户端启动时,我收到以下错误消息。
puppet agent --server=agent.com --no-daemonize --debug err: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed. This is often because the time is out of sync on the server or client
尝试在/ etc / hosts中input一个条目
127.0.0.1 localhost.localdomain localhost puppet
删除puppet agent命令的--server参数。
找出你的傀儡大师的FQDN发出:
# openssl x509 -noout -subject -in /var/lib/puppet/ssl/ca/ca_crt.pem subject= /CN=Puppet CA: host.domain.com
与以下输出(如果有)进行比较:
# puppet cert list --all
在/etc/hosts文件中添加一个条目,指向在puppetmaster端口( 8140 )中侦听的IP:
192.168.124.2 host.domain.com host
为了找出使用哪个IP,你需要知道进程监听,如果这是一个独立的puppetmaster或apache + passenger安装,那么这个监听是不同的。 您可以使用:
netstat -an | grep 8140.*LISTEN
检查你的/etc/puppet/puppet.conf文件,特别是server= entry,它应该指向上面描述的FQDN。
不要使用localhost ,除非你不想find这个puppetmaster 。
在启动pupppet agent之前,请发出:
# puppet agent --test --waitforcet 2
指示代理人向傀儡CA发送CSR并等待签名。
检查使用
# puppet cert --list
待签署CSR。 签字:
# puppet cert sign host.domain.com
观看木偶代理收到编译的目录并应用它。 之后,您就可以启动代理并将其添加到启动脚本中。
我发现在/etc/puppet/puppet.conf设置了以下/etc/puppet/puppet.conf来解决“按本书”重新生成证书的情况,仍然产生了Q:
[master] certname=masterhost.domain.com [agent] certname=agenthost.domain.com
(其中masterhost.domain.com是masterhost.domain.com的FQDN,agenthost.domain.com与agenthost.domain.com的相同)
海事组织这是相当明确的方式,确保木偶知道哪个名字是主人,哪些是代理人在同时运行在同一个主机的情况下,特别是刚刚设置server=masterhost.domain.com没有似乎足以避免冲突。
我没有find在/etc/hosts中添加puppetmaster的DN的build议(我已经把它作为一个DNS别名了),所以我不能说这对我的情况是否有帮助。