Puppet 不签署证书

Puppet 不签署证书

我已经为 puppet 构建了一个测试实验室,但它不起作用。我puppet agent在节点上启动它,它等待证书。

root:~# puppet agent --server xxxx --waitforcert 60 --test
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session
warning: peer certificate won't be verified in this SSL session

在服务器上,现在发现待处理的证书请求:

root:~# puppet cert --list                                                                                                        
root:~#

在 masterhttpd 日志中:

root:~# tail /var/log/puppet/masterhttp.log
[2012-01-06 09:19:17] xxx - - [06/Jan/2012:09:19:17 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:17] - -> /production/certificate/pgw
[2012-01-06 09:19:47] xxx - - [06/Jan/2012:09:19:47 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:47] - -> /production/certificate/pgw
[2012-01-06 09:19:47] xxx - - [06/Jan/2012:09:19:47 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:47] - -> /production/certificate/pgw
[2012-01-06 09:19:47] xxx - - [06/Jan/2012:09:19:47 CET] "GET /production/certificate/xx HTTP/1.1" 404 30
[2012-01-06 09:19:47] - -> /production/certificate/pgw

未找到证书文件。

答案1

我建议你以如下方式启动 Puppet 代理

$ puppet agent --server=xxxx --test --debug

此命令将为您提供有关失败原因的更多详细信息。此外,您可能需要留出更多时间才能完成。

您还可以尝试从任何方面删除证书(分别在主服务器和代理服务器上)

puppet --cert --clean your_machine_name

rm -rf /etc/puppet/ssl

答案2

我第一次使用 Puppet 时就遇到了类似的问题。 --server 选项没有被遵守。

尝试向您的 HOSTS 文件添加一个名为“puppet”的条目以及您的主箱的 IP。

如果有效,则以下语法可以正常工作(至少对于 2.7.5 版本)

[main]
logdir = /var/log/puppet
rundir = /var/run/puppet
ssldir = $vardir/ssl
server = puppetmaster.yourdomain.org
pluginsync = true

[agent]
classfile = $vardir/classes.txt
localconfig = $vardir/localconfig
server = puppetmaster.yourdomain.org
listen = true

答案3

看来您已验证代理已到达主服务器。第一步做得很好。

接下来,正如其他人所建议的那样,验证证书是否未签名,并且您没有错过它:

sudo puppet cert --list --all

如果您在那里看不到它,我会清理一切并重新开始。

首先,确认两台服务器上的日期和时间同步。您可以使用 之类的命令强制进行 NTP 同步ntpd -q -g,具体取决于您的发行版和 NTP 客户端。

clean然后,在 Puppet Master 上运行:

sudo puppet cert clean <agent hostname>

在代理上,清理所有 SSL 文件:

sudo rm -rf /var/puppet/ssl /var/lib/puppet/ssl/ /var/puppet/ssl 

最后,运行测试:

sudo puppet agent --debug --test --server <master hostname>

如果这不能解决问题的话,希望这能给你提供一些线索,告诉你应该去哪里查找。

相关内容