如何让运行木偶按钮在 Foreman 上工作?

Flo*_*ian 7 windows ubuntu puppet puppetmaster foreman

首先,我知道在 serverfault 上已经有一个非常相似的问题,但它并没有完全回答我的问题。

所以,我的设置如下:我有一台服务器,运行 Ubuntu 14.04 LTS 和 puppet master 3.4.3 和 foreman 1.6。客户端是运行 puppet 代理 3.7.0 的 Windows 7 计算机。

自动运行工作正常,我只是无法让Run Puppet按钮工作。我总是收到带有此消息的红色叠加层:

failed to execute puppetrun: ERF12-4252 [ProxyAPI::ProxyException]: Unable to execute Puppet run ([RestClient::InternalServerError]: 500 Internal Server Error) for proxy https://puppetmaster:8443/puppet
Run Code Online (Sandbox Code Playgroud)

我按照wiki的说明在节点上添加了以前不存在的文件 auth.conf。我把它放在C:\ProgramData\PuppetLabs\puppet\etc\puppet.conf 文件所在的位置。我还在这个目录中添加了一个空的 namespaceauth.conf。在节点和服务器上我激活了listen=true。我在 sudoers 文件中添加了 foreman-proxy。我重新启动了节点服务和 puppetmaster 几次。这就是我发现的所有其他帖子都说“现在你有一个可以运行的运行木偶按钮”。除了我它不起作用。

我能找到的唯一日志条目是在 /var/log/foreman-proxy/proxy.log 中:

E, [2014-10-20T17:50:53.051681 #1119] ERROR -- : Failed puppet run: Check Log files
Run Code Online (Sandbox Code Playgroud)

我检查了我能找到的所有日志文件,但找不到关于此错误可能是什么的任何进一步信息。编辑:添加到 wiki 的链接第二次编辑:我还检查了工头错误代码,但不幸的是,我得到的代码没有任何链接到它的信息。(是的,我检查了代理通信错误 - 没有)

Flo*_*ian 2

终于成功运行了!看来错误代码(ERF12-4252)对应于不同的错误。我有不同的错误配置,在控制台上返回了不同的错误,但 Foreman 总是报告相同的消息。

对我来说解决这个问题的方法是使用puppet kick <mynode>命令行中的命令。在那里,我发现我的客户端证书名称中有一个拼写错误,因此与主机名不符。

在 Windows 客户端上,我做了同样的事情(停止 puppet windows 服务并在 puppet 命令行窗口中启动代理,以puppet agent --debug --no-daemonize验证代理上是否发生任何情况。

这也有助于找到 auth.conf 文件的正确目录。在 Windows 上安装代理时,auth.conf 文件放置在安装目录中(通常C:\Program Files\PuppetLabs\Puppet\puppet\conf),但预计位于C:\ProgramData\PuppetLabs\puppet\etc!

因此,将文件复制到此位置并添加所需的行就可以了。

path /run
allow puppetmaster.dev.nextgen.local
Run Code Online (Sandbox Code Playgroud)

之后,我只需删除 foreman 中的旧主机,在代理上创建新证书,在 puppetmaster 上对其进行签名,然后在 foreman 中添加新主机即可。