Puppet 傀儡代理可以';找不到服务器

Puppet 傀儡代理可以';找不到服务器,puppet,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** 代理似乎不知道要连接到哪个

我不熟悉木偶,但很快就学会了。今天,我在尝试运行以下程序时遇到了一个问题:

$ 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>
[main]
服务器=木偶。
我确实有一个
木偶的DNS条目。
,如果我
挖掘木偶。
,我看到名称解析正确

我读过的所有puppet文档都声明,默认情况下,代理尝试在
puppet
连接到puppet主机,您的选项是主机文件欺骗或做正确的事情,在DNS中创建CNAME,并相应地编辑puppet.conf,我已经这样做了


那么我错过了什么?非常感谢您的帮助

D'oh!需要
sudo
才能做到这一点!然后一切正常。

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

我通过打开master和代理vm上的/etc/hosts文件以及该行解决了这个问题

***.***.***.*** learn.localdomain learn puppet.localdomain puppet
ip地址(星号)最初是一些随机数。我必须在两个虚拟机上更改这个号码,以便它是主节点的ip地址

因此,我想对于有经验的用户,我的建议是检查/etc/hosts文件,以确保此处的主机和代理的ip地址不仅匹配,而且与主机的ip地址相同

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

我必须使用
--server
标志:

sudo puppet agent --server=puppet.example.org

在我的例子中,我得到了相同的错误,但这是由于证书应该被签署到puppetmaster服务器上的节点

要检查挂起的证书,请运行以下操作:

$ 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**
傀儡证书列表 “node.domain.com”(SHA256)8D:E5:8A:2*****”

将证书签名到节点:


puppet cert sign node.domain.com今天在
CentOS 6.4

为了解决这个问题,我所做的只是检查常见的东西,比如hosts和resolv.conf,以确保它们符合预期(与工作服务器相比),然后

  • 已删除/var/lib/puppet目录
    rm-rf/var/lib/puppet
  • 清除了puppet master上的证书
    puppetca--clean
    服务器名
  • 重新启动网络
    服务网络重新启动
  • 重演木偶
  • 即使resolv.conf与工作服务器相同,puppet也会更新resolv.conf,并立即重新签署证书并替换所有puppet lib文件


    此后一切都很好。

    再玩一次,我开始怀疑在这个庄园中执行puppet.conf时是否会被读取。我已经在puppet.conf中放入垃圾,甚至尝试删除它,并且在从命令行运行代理时,这两种方法似乎都不会影响结果。但是,当run作为一项服务。可能会这么简单吗?啊-当你不使用sudo时,Puppet将只读取~/.Puppet/Puppet.conf,而不是/etc/Puppet/Puppet.conf。Puppet可以在没有根权限的情况下运行,但显然无法安装系统包或管理服务等。我也发现了这一点。谢谢:)一个小提示。安装Puppet时使用特殊用户像CentOS上的
    puppet
    ,然后你必须与该用户一起运行它,并提供
    --server
    如下参数:
    sudo-u puppet puppet agent--server=puppet.my domain.com
    花了30分钟,然后我找到了金子!:Pi有了这个问题,答案,第一条评论被否决了,仍然回到了这里……我没有回答op,但使用--server选项
    puppet代理-t--server=puppet服务器