(Ansible 新手)我正在ansible all -m setup
少数主机上运行,为我们的库存系统生成 JSON 输出。我们的一些 Ansible 远程服务器位于不同的子网(例如 DMZ)。我想包括局域网络在 ansible JSON 输出中与这些主机关联。我该怎么做?
更新:澄清一下,我希望192.168.1.1
IP 地址以某种方式出现在事实输出中。输出中的ansible_all_ipv4_addresses
字段和包含对于从 LAN 角度查看清单的人来说不是有用的 IP 地址。ansible_default_ipv4
10.10.10.1
192.168.1.0/24 192.168.1.0/24
LAN ----------------FIREWALL
| |
eth0 eth1
| |
| +-------DMZ1---------+
| |
host1.org.net > + eth0:1=192.168.1.1 + 10.10.10.1 > host1.org.net
| |
host2.org.net > + eth0:2=192.168.1.2 + 10.10.10.2 > host2.org.net
答案1
一种解决方案似乎是运行一个剧本,使用/etc/ansible/facts.d/whatever.fact
变量填充文件"{{inventory_hostname}}"
。运行时setup
,它将包含whatever.fact
在 JSON 输出中。它在这里,以防它对其他人有帮助:
如何使用 Playbook 将 inventory_hostname 记录到远程文件中?