Foreman with Puppet node Net::HTTPNotFound Error



我已经按照官方文档在RHEL 7.1虚拟机上安装了foreman (v1.9.0)

我当前的环境包括:

  • 1 x Puppet master/foreman
  • 2 x制剂(RHEL 6.5 &7)

Foreman被配置为ENC,它将服务于9个环境(包括生产)。在foreman中为foreman/puppetmaster配置了智能代理

代理在生成CSR并获得傀儡主人签名时没有问题。

当我在远程机器上使用命令

运行puppet代理时
puppet agent --no-daemonize --server <FQDN> --trace

我得到以下错误

警告:无法获取我的节点定义,但代理将继续:

警告:错误400在服务器上:未能找到

在puppet主机上运行引用的命令

sudo -u puppet /etc/puppet/node.rb <agent FQDN> 

返回错误:

检索节点错误

当这个失败时,/var/log/foreman/production.log(包括debug)中没有生成日志,尽管在/var/log/httpd/foreman-ssl_access_ssl.log中有一个http 404错误生成

& lt;IP> - - [30/Sep/2015:15:13:29 +1000] GET/node/<代理FQDN> ?format=yml HTTP/1.1" 404 48 "-" Ruby"

节点。Rb参考foreman。这是正确的,相对于列出的条目,我可以确认如下:

  • : url:
  • : ssl_ca:
  • : ssl_cert:
  • : ssl_key:

它也是安装过程中生成的默认文件,没有任何更改。

代理在foreman中,但是为了实现这一点,一旦我配置了puppet.conf并生成/签署了代理证书,我运行命令

puppet agent -t <puppet master FQDN>
直到我手动运行命令 ,代理才被导入到foreman中。
foreman-rake puppet:import:hosts_and_facts

调用foreman中的一个主机,然后单击'YAML'显示每个代理的正确信息。

我甚至使用openssl将信息从证书中取出来确认它们是正确的。

更新:

我已经运行了命令

curl -k https://< Puppet Master FQDN>/foreman

返回输出

<html><body>You are being <a href="https://< Puppet Master FQDN>/foreman/users/login">redirected</a>.</body></html>

生成日志条目~/领班/production.log

2015-10-01 10:04:57 [app] [I]|| starched GET "/foreman/" for at 2015-10-01 10:04:57 +10002015-10-01 10:04:57 [app] [I] DashboardController#index作为/的处理2015-10-01 10:04:57 [app] [I]重定向到https://<傀儡主人>/领班/用户/登录2015-10-01 10:04:57 [app] [I] Filter chain stopped as:require_login呈现或重定向2015-10-01 10:04:57 [app] [I]在7毫秒内完成302个发现(活动记录:0.6ms)

在~/httpd/foreman-ssl_access_ssl.log中我得到了这个

& lt;PUPPET MASTER IP> - - [01/Oct/2015:10:05:26 +1000] "GET/foreman/HTTP/1.1" 302 129 "-" curl/7.29.0"

同一日志中的其他相关日志条目将为

& lt;PUPPET MASTER IP> - - [01/Oct/2015:09:53:28 +1000] "POST/api/hosts/facts/HTTP/1.1" 404 27 "-" "Ruby"

& lt;PUPPET MASTER IP> - - [01/Oct/2015:09:53:28 +1000] "GET/node/<傀儡主人> ?format=yml HTTP/1.1" 404 52 "-" Ruby"

所以问题是我能对Puppet/Foreman HTTP配置做些什么来解决404错误

看起来ENC脚本正在请求web服务器(/api)的根路径,而Foreman本身托管在子uri (/Foreman/)上。它应该击中/foreman/api/hosts/facts, /foreman/node/等,这就是为什么Apache返回404,但Foreman没有看到和记录请求。

您可以更改该节点的URL。在/etc/puppet/foreman中使用。通过:url:设置。在此处添加/foreman后缀

或者,如果你使用了Foreman安装程序,那么你可以用--puppet-server-foreman-url=https://example.com/foreman重新运行它,它应该做同样的事情。

相关内容

  • 没有找到相关文章

最新更新