
(Neu bei Ansible) Ich verwende es ansible all -m setup
auf einer Handvoll Hosts, um JSON-Ausgaben für unser Inventarsystem zu erzeugen. Einige unserer Ansible-Remotes befinden sich in unterschiedlichen Subnetzen (z. B. DMZs). Ich möchte dieLAN-IPmit diesen Hosts in der Ansible-JSON-Ausgabe verknüpft. Wie kann ich das machen?
UPDATE: Zur Klarstellung: Ich möchte, dass die 192.168.1.1
IP-Adresse irgendwie in der Faktenausgabe enthalten ist. Das ansible_all_ipv4_addresses
Feld und ansible_default_ipv4
in der Ausgabe enthält, 10.10.10.1
was für Personen, die das Inventar aus einer LAN-Perspektive betrachten, keine hilfreiche IP-Adresse ist.
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
Antwort1
Eine Lösung scheint darin zu bestehen, ein Playbook auszuführen, um eine Datei mit /etc/ansible/facts.d/whatever.fact
der "{{inventory_hostname}}"
Variable zu füllen. Wenn setup
es ausgeführt wird, wird es whatever.fact
in die JSON-Ausgabe aufgenommen. Es ist hier, falls es jemandem anderen hilft:
Wie kann ich inventory_hostname mithilfe eines Playbooks in einer Datei auf der Remote-Basis protokollieren?