För att kunna göra detta, kommer vi att diskutera ansible-modulen: Gathers facts
💬 Officiell webbsida:
- Visa fakta från alla värdar och lagra dem i /tmp/facts indexerat efter värdnamn
- För att lista fakta direkt i din playbook måste du ange gather_facts: True i din playbook
- hämta aktuell målvärds IP-adress och använd den i din ansible-roll eller playbook
- För att ställa in värdet i din vars-fil
- använd case
- uppdatering: 2018-04-19
Visa fakta från alla värdar och lagra dem i /tmp/facts indexerat efter värdnamn
$ ansible all -m setup --tree /tmp/facts
➡ Kontrollera nu filen för att få en tydlig bild av alla variabler (fakta) som samlats in av ansible för din värddator, som den välkända {{ inventory_hostname }}
För att lista fakta direkt i din playbook måste du ange gather_facts: True i din playbook
gather_facts: True tasks:
- debug: var=hostvars
hämta aktuell målvärds IP-adress och använd den i din ansible-roll eller playbook
Du kan använda i din template.j2{{ ansible_eth0.ipv4.address }}
på samma sätt som du använder {{ inventory_hostname }}
För att ställa in värdet i din vars-fil
---
host_ip: "{{ ansible_enp0s3.ipv4.address }}"
använd case
➡ här är ett exempel: https://github.com/orsius/ansible-dtx-cassandra-3
⚠ Det här git-förrådet är inte tänkt att användas i produktion, det är bara för att illustrera det här blogginlägget.
Jag hoppas att det hjälper någon en dag ッ
kr,
G.
uppdatering: 2018-04-19
Du kan också använda ”setup” i din .I mitt nuvarande användningsfall behöver jag t.ex. hämta default ipv4 addr
:
- name: Gather facts from new server
setup:
filter: ansible_default_ipv4.address
Du kan nu anropa {{ ansible_default_ipv4.address }}
i din playbook.
(setup laddar alla ansible_**-variabler)
ℹ️ För dem som är intresserade av att lära sig mer om ansible rekommenderar jag den här webbplatsen: www.educba.com ; Jag tyckte att informationen var komplett och lätt att läsa.