AWX 在配置回调期间找不到主机

AWX 在配置回调期间找不到主机

我最近设置了 RHEL Satellite,现在正在与我们的 AWX/Ansible Tower 实现集成。我使用的 curl 请求如下:

/usr/bin/curl -k -s --data "host_config_key={REDACTED}" https://awx.fqdn.com/api/v2/job_templates/34/callback/

这似乎(正确地)启动了库存同步(并且主机位于 Satellite 库存中),但 AWX 服务器返回{"msg":"No matching host could be found!"}

我发现的关于这个主题的文档很少,但指出主机名或 IP 可用于确定库存中的主机。

hostnamectl 返回的主机名是主机的 FQDN(与清单中的主机名完全匹配),但我也尝试将其设置为短名称,结果相同。

我昨天发现了一个 rDNS 问题,但已经解决了,所以现在 IP 也可以正确解析为库存主机名。

AWX 如何确定要使用的主机名?是否有任何日志可供参考?

编辑:我还应该补充一点,我尝试使用管理员用户名/密码发出 GET 请求,但 matching_hosts 数组为空。

curl http://admin:[email protected]/api/v2/job_templates/34/callback/
{"host_config_key":"{REDACTED}","matching_hosts":[]}

答案1

好吧,我明白了。我正在使用 Kubernetes 部署,由于请求是通过 Nginx 代理的,因此 AWX 看不到客户端的真实 IP。

查看 Web 服务器容器日志让我找到了正确的方向,因为它们显示的是 nginx 入口 IP,而不是客户端设备。解决方案很简单,只需在我的 AWX 规范中设置 HTTP_X_FORWARDED_FOR 并重新启动部署即可。

我也会在这里做一些记录,希望它能对别人有帮助...

  1. AWX 似乎仅根据清单就从 IP 解析主机(我最初认为不需要 rDNS)
  2. AWX 返回的 matching_hosts 数组仅包含与当前请求的 IP 匹配的主机(可能很明显,但我一度认为它可能会返回完整的清单)
  3. 在此初始阶段,仅更新/检查清单,剧本中配置的主机部分无关紧要。只有在更新清单并与主机匹配后,剧本才会被调用。(再次强调,这可能很明显,但我并不是 100% 清楚)

相关内容