Per fare questo, parleremo del modulo ansible: Gathers facts
💬 Pagina web ufficiale:
- Visualizza i fatti di tutti gli host e memorizzali in /tmp/facts indicizzati per hostname
- Per elencare i fatti direttamente nel tuo playbook devi impostare gather_facts: True nel tuo playbook
- ottenere l’indirizzo IP dell’host di destinazione corrente e usarlo nel tuo ruolo ansible o playbook
- Per impostare il valore nel tuo file vars
- uso case
- aggiornamento: 2018-04-19
Visualizza i fatti di tutti gli host e memorizzali in /tmp/facts indicizzati per hostname
$ ansible all -m setup --tree /tmp/facts
➡ ora controlla il file per avere una chiara visione di tutte le variabili (fatti) raccolti da ansible per il tuo host come il ben noto {{ inventory_hostname }}
Per elencare i fatti direttamente nel tuo playbook devi impostare gather_facts: True nel tuo playbook
gather_facts: True tasks:
- debug: var=hostvars
ottenere l’indirizzo IP dell’host di destinazione corrente e usarlo nel tuo ruolo ansible o playbook
Puoi usare nel tuo template.j2{{ ansible_eth0.ipv4.address }}
nello stesso modo in cui usi {{ inventory_hostname }}
Per impostare il valore nel tuo file vars
---
host_ip: "{{ ansible_enp0s3.ipv4.address }}"
uso case
➡ ecco un esempio: https://github.com/orsius/ansible-dtx-cassandra-3
⚠ Questo repository git non è destinato ad essere utilizzato in produzione, è solo per illustrare questo post del blog.
Spero che possa aiutare qualcuno un giorno ッ
kr,
G.
aggiornamento: 2018-04-19
Puoi anche usare “setup” nel tuo file .yaml.
Per esempio nel mio caso d’uso attuale, ho bisogno di ottenere il default ipv4 addr
:
- name: Gather facts from new server
setup:
filter: ansible_default_ipv4.address
Ora puoi chiamare {{ ansible_default_ipv4.address }}
nel tuo playbook.
(setup carica tutte le variabili ansible_**)
ℹ️ Per coloro che sono interessati a saperne di più con ansible consiglio questo sito: www.educba.com ; ho trovato le informazioni complete e facili da leggere.