Puppet 客户端未连接到主服务器-SSL 连接错误

Puppet 客户端未连接到主服务器-SSL 连接错误

我在同一台机器上安装了 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

答案1

尝试在 /etc/hosts 中添加条目

127.0.0.1 localhost.localdomain localhost puppet

删除--serverpuppet agent 命令的参数。

答案2

找出完整限定域名 (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,指向正在监听端口的 IP puppetmaster8140):

192.168.124.2  host.domain.com host

要确定要使用哪个 IP,您需要知道监听的进程,如果这是独立安装puppetmasterapache+passenger安装,则情况会有所不同。您可以使用:

netstat -an | grep 8140.*LISTEN

检查您的/etc/puppet/puppet.conf文件,特别是server=条目,它应该指向上面描述的 FQDN。

不要使用localhost,除非您不想puppetmaster被发现。

在开始之前pupppet agent,请发出:

# puppet agent --test --waitforcet 2

指示代理向 puppetmaster CA 发送 CSR 并等待其签名。

检查使用

# puppet cert --list

等待签署 CSR。签署它:

# puppet cert sign host.domain.com

观察 puppet 代理接收已编译的目录并应用它。之后,您就可以启动代理并将其添加到启动脚本中了。

答案3

我发现,采用以下方法/etc/puppet/puppet.conf可以解决“按书本”重新生成证书仍然会产生问题中描述的情况:

[master]
certname=masterhost.domain.com

[agent]
certname=agenthost.domain.com

(其中masterhost.domain.compuppetmaster 的 FQDN 和agenthost.domain.com代理的 FQDN 相同)

在我看来,这是一种相当清晰的方法,可以确保当两个主机都在同一台主机上运行时,puppet 知道哪个名称是主名称、哪个名称是代理名称,尤其是因为仅仅设置server=masterhost.domain.com似乎不足以避免冲突。

我没有找到添加 puppetmaster 的 DN 的建议解决方案/etc/hosts(我已经将其作为 DNS 别名),所以我不能说这是否对我的情况有帮助。

相关内容