0Pricing
Ansible Academy · Lezione

Usare ansible_facts nei task

Scelga il ramo in base a sistema operativo, memoria e indirizzo IP.

Usare ansible_facts nei task è una lezione Ansible Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ansible Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ansible Academy include 4 lezioni in totale.

Dai dati alle decisioni

I facts raccolti sono utili solo se vengono usati per agire. Ora estrarrà i valori da ansible_facts direttamente nei task. 🌟

Consultare un fact

Usi la stessa sintassi {{ }} di qualsiasi variabile. Tra le parentesi graffe, indichi il fact desiderato, ad esempio distribution dell'host.

- debug:
    msg: "OS is {{ ansible_distribution }}"

Anche tramite il dizionario

È anche possibile leggere i facts attraverso il dizionario ansible_facts usando chiavi tra parentesi quadre. Entrambi gli stili fanno riferimento agli stessi dati.

{{ ansible_facts['distribution'] }}

Diramarsi in base al sistema operativo

Combini un fact con when per eseguire un task solo sugli host corrispondenti, ad esempio installando un pacchetto esclusivamente sui sistemi Debian.

when: ansible_os_family == "Debian"

Scegliere il pacchetto giusto

I facts permettono a un unico task di gestire molte distribuzioni. Scelga apache2 o httpd in base alla famiglia del sistema operativo, invece di scrivere due playbook.

name: "{{ 'apache2' if ansible_os_family == 'Debian' else 'httpd' }}"

Usare i facts numerici

I facts come ansible_memtotal_mb sono numeri, quindi è possibile confrontarli e non eseguire operazioni sugli host con risorse insufficienti.

when: ansible_memtotal_mb > 2048

Raggiungere i valori annidati

Per i facts annidati, concateni le chiavi con i punti. L'indirizzo IPv4 predefinito si trova sotto ansible_default_ipv4, poi nella chiave address.

{{ ansible_default_ipv4.address }}

Facts nei template

Gli stessi nomi dei facts funzionano nei template Jinja2. Inserisca direttamente il hostname o l'IP di un host in un file di configurazione generato.

server_name {{ ansible_hostname }};

Iterare sui facts di tipo lista

Alcuni facts sono liste, come ansible_interfaces. È possibile iterare su di esse per agire su ogni interfaccia di rete presente nell'host.

loop: "{{ ansible_interfaces }}"

Verificare prima di fidarsi

Non è sicuro del valore esatto di un fact? Lo stampi prima con debug, poi costruisca la logica che dipende da quel valore.

- debug:
    var: ansible_distribution_version

Un playbook, molti host

Poiché i facts sono specifici per ogni host, i task basati sui facts fanno sì che un unico playbook si comporti correttamente su una flotta eterogenea di macchine.

Controllo rapido

Come si esegue un task solo sugli host della famiglia Debian?

Riepilogo

Ha letto i facts con {{ }}, creato diramazioni con when, raggiunto valori annidati e iterato sui facts di tipo lista per rendere i task adattivi. ✨

Domande Frequenti

La lezione «Usare ansible_facts nei task» è gratuita?

Sì — il testo completo di «Usare ansible_facts nei task» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ansible Academy, passa a CoddyKit PRO. Il corso Ansible Academy include 4 lezioni in totale.

Cosa imparerò in «Usare ansible_facts nei task»?

Scelga il ramo in base a sistema operativo, memoria e indirizzo IP. Eserciti Ansible Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ansible Academy?

Non è richiesta alcuna esperienza precedente. Ansible Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Usare ansible_facts nei task»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ansible Academy?

Sì. Ogni lezione Ansible Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Che cosa sono i facts e perché contano
  2. Esplorare i facts con il modulo setup
  3. Usare ansible_facts nei task
  4. Disabilitare la raccolta dei facts per aumentare la velocità
← Torna a Ansible Academy