使用木偶仪表板作为一个enc

0最喜欢的

我正在使用在不同服务器上运行的puppet仪表板的多个puppet master设置。 我也configuration仪表板使用HTTPS与乘客运行。 我想把木偶仪表盘转到ENC。

我已经在每个木偶大师上设置了以下configuration(请原谅链接中的空格):

node_terminus = exec external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=https:// puppet-dashboard /usr/share/puppet-dashboard/bin/external_node 

我编辑了external_node ruby​​脚本,并为仪表板指定了https URL,但是我在puppet节点上得到了这个错误:

 Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Failed when searching for node ukserver0028.domain.net: Failed to find ukserver0028.domain.net via exec: Execution of '/usr/bin/env PUPPET_DASHBOARD_URL=https://puppet-dashboard /usr/share/puppet-dashboard/bin/external_node ukserver0028.domain.net' returned 127: Error: Could not retrieve catalog; skipping run 

selinux被设置为宽容

我已经在木偶大师上运行以下命令

 /usr/bin/env PUPPET_DASHBOARD_URL=https://puppet-dashboard /usr/share/puppet-dashboard/bin/external_node ukserver0028.domain.net 

但我得到这个错误:

 /usr/lib/ruby/1.8/net/http.rb:586:in `connect': SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (OpenSSL::SSL::SSLError) 

这将我指向external_node脚本和SSL证书的path

 CERT_PATH PKEY_PATH CA_PATH 

我编辑了external_node文件,并指向由rake工具创build的仪表板SSL使用的证书。

$ sudo -u puppet-dashboard rake cert:create_key_pair $ sudo -u puppet-dashboard rake cert:request

我还注意到,通用名称实际上是仪表板,而不是puppet-dashboard,它是我在DNS中的c-name。 我现在可以成功运行以下命令。

 /usr/bin/env PUPPET_DASHBOARD_URL=https://dashboard /usr/share/puppet-dashboard/bin/external_node puppet.domain.net 

但是,如果我使用puppet master或puppet-dashboard服务器以外的任何其他节点运行相同的命令,则会出现SSL错误,我认为环境中的其他puppet节点不知道或由rake工具创build的puppet证书在仪表板上启用HTTPS。

因此,我应该在external_node文件中使用哪些证书?

除此之外,我有一个sandpit环境,使用http运行puppet-dashboard。 通过指定在puppet.conf中正确设置external_node的path并将external_node文件configuration为使用HTTP来设置工作。 所以使用在HTTPS上运行的仪表板肯定会有些不妥。

非常感谢 – Oli

我设法解决这个问题。 一旦所有的configuration是正确的,事情一切正常。

主要区域是 – externode_node需要在所有木偶大师和傀儡仪表板服务器上。 当在仪表板上启用https时,证书位置应该是由rake工具创build的证书位置。 您可以在仪表板服务器上的settings.yml文件中看到这些信息。 确保在DASHBOARD_URL中使用耙具创build的证书中的通用名称,在大多数情况下,仪表板。 如果您愿意,您可能需要为仪表板或Alogging设置一个c-name。 确保正在使用的external_node脚本被复制到所有木偶主服务器,并且是相同的。 我使用的位置是/ usr / share / puppet-dashboard / bin / external_node。 确保URL是https://仪表板或仪表板证书的cn。 否则,你会得到一个SSL名称不符合certname错误

每个主设备上的puppet.conf文件有两行来启用ENC。 这如下所示:

 node_terminus = exec external_nodes = /usr/bin/env PUPPET_DASHBOARD_URL=https:// dashboard/usr/share/puppet-dashboard/bin/external_node 

查看仪表板名称 – 与仪表板证书中的CN名称相同。 确保你重新启动每个木偶主人的httpd。 如果你还在读这个,祝你好运!