24

我是木偶的新手,但很快就学会了。今天,我在尝试运行以下命令时遇到了问题:

$ 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>

确实有一个 DNS 条目puppet.<my domain>,如果我dig puppet.<my domain>,我看到该名称解析正确。

我读过的所有 puppet 文档都指出,代理puppet默认尝试连接到 puppet master,您的选项是主机文件欺骗或做正确的事情,在 DNS 中创建一个 CNAME,并相应地编辑 puppet.conf,我有完毕。

那么我错过了什么?任何帮助是极大的赞赏!

4

5 回答 5

57

哦!需sudo要这样做!然后一切正常。

于 2012-05-24T03:13:39.470 回答
3

我不得不使用--server标志:

sudo puppet agent --server=puppet.example.org
于 2013-10-15T21:50:33.507 回答
0

我实际上遇到了同样的错误,但我正在使用两个学习 puppet vm 并尝试运行“puppet agent --test”命令。

我通过打开主服务器和代理 vm 上的文件 /etc/hosts 和行解决了这个问题

***.***.***.*** learn.localdomain learn puppet.localdomain puppet

ip 地址(星号)最初是一些随机数。我必须在两个 vm 上更改这个数字,使其成为主节点的 IP 地址。

所以我想对于有经验的用户,我的建议是检查 /etc/hosts 文件,以确保这里的主服务器和代理的 IP 地址不仅匹配,而且与主服务器的 IP 地址相同。

对于像我这样的其他菜鸟,我的建议是更清楚地阅读文档。这是“设置代理虚拟机”过程中的一个步骤,我完全错过了 xD

于 2013-07-02T16:55:36.470 回答
0

在我的情况下,我遇到了同样的错误,但这是由于证书应该签署到 puppetmaster 服务器上的节点。

检查待处理的证书运行如下:

傀儡证书列表

"node.domain.com" (SHA256) 8D:E5:8A:2*****"

将证书签署到节点:

傀儡证书签名 node.domain.com

于 2016-05-09T14:34:35.070 回答
0

今天在puppet 2.6上遇到同样的问题CentOS 6.4 我为解决这个问题所做的只是检查主机和 resolv.conf 等常用内容,以确保它们符合预期(与工作服务器相比),然后;

  1. 删除 /var/lib/puppet 目录rm -rf /var/lib/puppet
  2. 清除了人偶大师的证书puppetca --clean servername
  3. 重启了网络service network restart
  4. 重跑木偶

即使 resolv.conf 与工作服务器相同,puppet 还是更新了 resolv.conf 并立即重新签署了证书并替换了所有 puppet lib 文件。

之后一切都很好。

于 2016-08-22T09:26:07.283 回答