我正在尝试在虚拟机上运行 Puppet Master,并通过虚拟机主机上的端口转发从客户端机器进行连接。
细节
我有一个运行着 Ubunto 和 Puppet 3.1.1 的虚拟机(称为管理虚拟机的主机(称为洛基) 运行 rinetd,将端口 8140 上的传入连接转发到虚拟机。
我有一台客户端机器(称为雷神) 与 Puppet 3.0.2。
使用 netcat 和 telnet 进行测试确认端口转发有效,并且我可以从客户端计算机进行连接(雷神)到 Puppet Master 虚拟机(管理)。
当我运行木偶大师(在管理) 使用以下命令似乎可以正确启动:
puppet master --no-daemonize --debug
当我运行代理时(在雷神),使用以下命令:
puppet agent --server loki --test --no-daemonize
我收到以下错误:
Warning: Unable to fetch my node definition, but the agent run will continue:
Warning: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Info: Retrieving plugin
Error: /File[/var/puppet/lib]: Failed to generate additional resources using 'eval_generate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Error: /File[/var/puppet/lib]: Could not evaluate: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost] Could not retrieve file metadata for puppet://loki/plugins: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Error: Could not retrieve catalog from remote server: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run
Error: Could not send report: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed: [self signed certificate in certificate chain for /CN=Puppet CA: localhost]
但是我没有得到关于傀儡大师的额外输出,表明连接已被尝试或被拒绝。
我的理解是,Puppet Master 应该拒绝连接,直到客户端的证书被签名。使用命令木偶表演列表没有列出任何未签名的证书。
关于如何进行有什么建议吗?
答案1
抱歉,我误读了你原来的错误,看来船长/代理人搞混了,看看此链接了解详情。
具体来说:
puppet 拥有的服务器证书与 puppetmaster 使用的证书不同。在纯 puppet 节点上,一种简单的方法是删除当前的 SSL 信息并重新启动:
查找/var/lib/puppet -type f -print0 |xargs -0r rm
还要确保客户端和服务器同意当前时间(否则创建的证书可能在另一台机器上无效)。
答案2
以下链接很好地解释了 Puppet 证书的工作原理: