Puppet代理找不到服务器

时间:2012-05-23 23:41:37

标签: puppet

我是傀儡的新手,但很快就把它捡起来。今天,我在尝试运行以下内容时遇到了一个问题:

$ 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,我已经完成了。

那我错过了什么?非常感谢任何帮助!

5 个答案:

答案 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 *******“

将证书签名到节点:

puppet cert sign node.domain.com

答案 4 :(得分:0)

puppet 2.6 CentOS 6.4今天发生了同样的问题 我所做的就是解决问题的方法是检查主机和resolv.conf之类的常用内容,以确保它们符合预期(与工作服务器相比)然后;

  1. 删除了/ var / lib / puppet目录rm -rf /var/lib/puppet
  2. 清除了木偶大师puppetca --clean servername
  3. 上的证书
  4. 重新启动网络service network restart
  5. 重新傀儡
  6. 即使resolv.conf与工作服务器相同,puppet也更新了resolv.conf并立即重新签名证书并替换了所有的puppet lib文件。

    之后一切都很好。