如何获得在Foreman上运行的Run Puppetbutton?

首先,我知道在serverfault上已经有一个非常类似的问题,但是这并不能完全解决我的问题。

所以,我的设置如下:我有一台服务器,运行Ubuntu 14.04 LTS和木偶大师3.4.3与工头1.6。 客户端是运行木偶代理3.7.0的Windows 7计算机。

自动运行工作正常,我只是麻烦得到Run Puppetbutton的工作。 我总是得到这个红色覆盖这个消息:

 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 

我遵循wiki的指示,并在节点上添加了以前不存在的文件auth.conf。 我把它放到了puppet.conf文件所在的C:\ProgramData\PuppetLabs\puppet\etc\目录下。 我也添加了一个空的namespaceauth.conf到这个目录。 在节点和服务器上,我激活了listen = true。 我把sudo-proxy添加到了sudoers文件中。 我重新启动了节点服务和puppetmaster几次。 这是我发现的所有其他post说“现在你有一个工作运行木偶button”。 除了我以外,它不工作。

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

 E, [2014-10-20T17:50:53.051681 #1119] ERROR -- : Failed puppet run: Check Log files 

我检查了所有可以find的日志文件,但找不到有关此错误的更多信息。 编辑:添加链接到维基第二编辑:我也检查了工头错误代码 ,但不幸的是,我得到的代码没有任何信息链接到它。 (是的,我检查代理通信错误 – 没有)

最后设法让它运行! 看来错误代码( ERF12-4252 )对应于不同的错误。 我有不同的错误configuration,在控制台上返回不同的错误,但Foreman总是报告相同的消息。

解决这个问题的方法是从命令行使用puppet kick <mynode>命令。 在那里,我发现我的客户端证书有一个错字,因此不符合主机名。

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

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

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

 path /run allow puppetmaster.dev.nextgen.local 

之后,我只需要删除领class中的老主持人,在代理人身上创build一个新的证书,在傀儡大师上签名,并在领class中join新的主持人。

关于如何设置不同的方法来使“运行木偶”的工作文件在这里:

木偶部分(4.3.7)的工头手册

目前远程运行可以通过“MCollective”,“Puppetssh”和“puppetrun(或踢)”(不赞成使用)来设置。

它为我工作我selectpuppetssh来源http://theforeman.org/manuals/1.11/index.html#4.3.6Puppet

从内容puppetssh的上面的链接中遵循这一条指令,现在编辑文件中的以下行。

/etc/foreman-proxy/settings.d/puppet

:puppetssh_command: /usr/bin/puppet agent --onetime --no-usecacheonfailure

将其转换为

 :puppetssh_command: /usr/bin/puppet agent --test 

现在它会像魅力一样自由地回复,如果它不起作用欢呼声