Um das zu tun, werden wir über das Modul ansible diskutieren: Gathers facts
💬 Offizielle Webseite:
- Fakten von allen Hosts anzeigen und in /tmp/facts indiziert nach Hostname speichern
- Um die Fakten direkt in deinem Playbook aufzulisten, musst du gather_facts: True in deinem Playbook
- Die IP-Adresse des aktuellen Zielhosts abfragen und in deiner Ansible-Rolle oder deinem Playbook verwenden
- Um den Wert in deiner vars-Datei zu setzen
- verwende case
- update: 2018-04-19
Fakten von allen Hosts anzeigen und in /tmp/facts indiziert nach Hostname speichern
$ ansible all -m setup --tree /tmp/facts
➡ nun die Datei überprüfen, um eine klare Sicht auf alle Variablen (Fakten) zu haben, die von ansible für deinen Host gesammelt wurden, wie die bekannte {{ inventory_hostname }}
Um die Fakten direkt in deinem Playbook aufzulisten, musst du gather_facts: True in deinem Playbook
gather_facts: True tasks:
- debug: var=hostvars
Die IP-Adresse des aktuellen Zielhosts abfragen und in deiner Ansible-Rolle oder deinem Playbook verwenden
Du kannst in deiner template.j2{{ ansible_eth0.ipv4.address }}
die gleiche Art und Weise verwenden wie {{ inventory_hostname }}
Um den Wert in deiner vars-Datei zu setzen
---
host_ip: "{{ ansible_enp0s3.ipv4.address }}"
verwende case
➡ hier ein Beispiel: https://github.com/orsius/ansible-dtx-cassandra-3
⚠ Dieses Git-Repository ist nicht für den Einsatz in der Produktion gedacht, sondern dient nur zur Veranschaulichung dieses Blogposts.
Ich hoffe, es hilft eines Tages jemandem ッ
kr,
G.
update: 2018-04-19
Du kannst auch „setup“ in deiner .yaml-Datei verwenden.
In meinem aktuellen Anwendungsfall brauche ich z.B. die default ipv4 addr
:
- name: Gather facts from new server
setup:
filter: ansible_default_ipv4.address
Sie können nun {{ ansible_default_ipv4.address }}
in Ihrem Playbook aufrufen.
(setup load all the ansible_** variables)
ℹ️ Für diejenigen, die daran interessiert sind, mehr über ansible zu erfahren, empfehle ich diese Website: www.educba.com ; Ich fand die Informationen vollständig und leicht zu lesen.