
(Nuevo en ansible) Estoy ejecutando ansible all -m setup
varios hosts para producir resultados JSON para nuestro sistema de inventario. Algunos de nuestros controles remotos ansible se encuentran en diferentes subredes (DMZ, por ejemplo). Me gustaría incluir elLAN IPasociado con estos hosts en la salida JSON ansible. ¿Cómo puedo hacer esto?
ACTUALIZACIÓN: Para aclarar, me gustaría que la 192.168.1.1
dirección IP aparezca de alguna manera en la salida de hechos. El ansible_all_ipv4_addresses
campo y ansible_default_ipv4
el resultado contienen 10.10.10.1
cuál no es una dirección IP útil para las personas que miran el inventario desde una perspectiva de LAN.
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
Respuesta1
Una solución parece ser ejecutar un libro de estrategias para completar un archivo /etc/ansible/facts.d/whatever.fact
usando la "{{inventory_hostname}}"
variable. Cuando setup
se ejecute, incluirá whatever.fact
en la salida JSON. Está aquí por si le sirve a alguien más:
¿Cómo puedo registrar inventario_hostname en un archivo en el control remoto usando un Playbook?