
(Новичок в ansible) Я работаю ansible all -m setup
на нескольких хостах, чтобы производить вывод JSON для нашей системы инвентаризации. Некоторые из наших ansible remotes находятся в разных подсетях (например, DMZ). Я хотел бы включитьIP-адрес локальной сетиассоциированные с этими хостами в выводе ansible JSON. Как это сделать?
ОБНОВЛЕНИЕ: Чтобы прояснить ситуацию, я бы хотел, чтобы 192.168.1.1
IP-адрес был в выходных данных фактов каким-то образом. ansible_all_ipv4_addresses
Поле и ansible_default_ipv4
в выходных данных содержит , 10.10.10.1
который не является полезным IP-адресом для людей, просматривающих инвентарь с точки зрения локальной сети.
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
Одним из решений, похоже, является запуск playbook для заполнения файла с /etc/ansible/facts.d/whatever.fact
использованием "{{inventory_hostname}}"
переменной. При setup
запуске он включит whatever.fact
в вывод JSON. Он здесь на случай, если это поможет кому-то еще:
Как записать inventory_hostname в файл на удаленном компьютере с помощью Playbook?