我是傀儡的新手,但很快就把它捡起来。今天,我在尝试运行以下内容时遇到了一个问题:
$ puppet agent --no-daemonize --verbose --onetime
**err: Could not request certificate: getaddrinfo: Name or service not known
Exiting; failed to retrieve certificate and waitforcert is disabled**
似乎代理不知道要连接的服务器。我可以在命令行中指定--server
,但是当它作为生产中的守护进程运行时对我没用,所以相反,我在/etc/puppet/puppet.conf中指定服务器名称这样:
[main]
server = puppet.<my domain>
我做有puppet.<my domain>
的DNS条目,如果我dig puppet.<my domain>
,我看到该名称正确解析。
我读过的所有puppet文档都声明代理尝试默认连接到puppet
的木偶大师,你的选项是主机文件技巧或做正确的事情,在DNS中创建CNAME,然后编辑相应的puppet.conf,我已经完成了。
那我错过了什么?非常感谢任何帮助!
答案 0 :(得分:56)
D'哦!需要sudo
才能执行此操作!一切正常。
答案 1 :(得分:3)
我必须使用--server
标志:
sudo puppet agent --server=puppet.example.org
答案 2 :(得分:0)
我实际上有同样的错误,但我正在使用两个学习木偶vm并尝试运行'puppet agent --test'命令。
我通过在master和agent vm以及行上打开/ etc / hosts文件来解决问题
***.***.***.*** learn.localdomain learn puppet.localdomain puppet
ip地址(星号)最初是一些随机数。我必须在两个vm上更改此数字,以便它是主节点的IP地址。
所以我想对于有经验的用户,我的建议是检查/ etc / hosts文件,以确保master和agent中的ip地址不仅匹配,而且与master的ip地址相同。 / p>
对于像我这样的其他新手,我的建议是更清楚地阅读文档。这是“设置代理vm”过程中的一个步骤,我完全错过了xD
答案 3 :(得分:0)
在我的情况下,我得到了相同的错误,但这是由于应该签署到puppetmaster服务器上的节点的证书。
检查以下运行的挂起证书:
“node.domain.com”(SHA256)8D:E5:8A:2 *******“
将证书签名到节点:
答案 4 :(得分:0)
puppet 2.6
CentOS 6.4
今天发生了同样的问题
我所做的就是解决问题的方法是检查主机和resolv.conf之类的常用内容,以确保它们符合预期(与工作服务器相比)然后;
rm -rf /var/lib/puppet
puppetca --clean
servername
service network restart
即使resolv.conf与工作服务器相同,puppet也更新了resolv.conf并立即重新签名证书并替换了所有的puppet lib文件。
之后一切都很好。