Origine e precedenza delle variabili
Tracci una prima mappa delle origini delle variabili.
Origine e precedenza delle variabili è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 4 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 DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.
Tante fonti
La stessa variabile può essere impostata in molti punti: inventory, vars del play, file, CLI e altro. Quale valore prevale davvero? 🌟
La precedenza decide
Ansible segue un ordine fisso chiamato precedenza delle variabili. Quando un nome viene impostato due volte, la fonte con priorità maggiore sovrascrive quella con priorità minore.
I defaults dei ruoli hanno la precedenza più bassa
I valori nella cartella defaults di un ruolo si trovano al livello più basso. Sono pensati per poter essere facilmente sovrascritti da quasi ogni altra fonte.
# roles/web/defaults/main.yml
http_port: 80Variabili dell'inventory
Le vars impostate nell'inventory, ad esempio in group_vars o host_vars, hanno una precedenza maggiore dei defaults dei ruoli, ma minore delle vars a livello di play.
# group_vars/web.yml
http_port: 8080Le play vars hanno maggiore priorità
Le variabili sotto la chiave vars di un play prevalgono sui valori dell'inventory. Definisca qui un valore e questo avrà la precedenza su qualsiasi valore in group_vars.
- hosts: web
vars:
http_port: 9090Le task vars sono circoscritte
È possibile associare vars a un singolo task. Il valore si applica solo a quel task e ha una precedenza maggiore rispetto alle vars più generali del play.
- debug:
var: http_port
vars:
http_port: 1234register e set_fact
I valori acquisiti con register o impostati durante un'esecuzione con set_fact si trovano ai livelli alti dell'ordine, subito sotto le extra vars.
- set_fact:
http_port: 7000Le extra vars sono al vertice
Le extra vars della riga di comando prevalgono su tutto il resto. Qualsiasi valore passato con -e è quello definitivo per quell'esecuzione.
ansible-playbook site.yml -e http_port=443Vince l'ultima definizione, all'interno dello stesso livello
Quando due fonti condividono lo stesso livello, ha effetto quella caricata per ultima. Prima conta la precedenza, poi l'ordine di caricamento risolve i pareggi.
Mantenere la semplicità
Raramente è necessario memorizzare l'intera tabella. Inserisca valori sensati nei defaults, applichi gli override in modo consapevole ed eviti di impostare lo stesso nome ovunque.
Eseguire il debug del valore ottenuto
Non è sicuro di quale valore abbia prevalso? Lo stampi con debug per vedere il risultato risolto prima di usarlo in produzione.
- debug:
var: http_portControllo rapido
Quale fonte di una variabile ha la precedenza più alta?
Riepilogo
Ha tracciato la gerarchia delle precedenze: defaults al livello più basso, poi inventory, vars di play e task, quindi set_fact, con le extra vars al vertice. ✨
Domande Frequenti
La lezione «Origine e precedenza delle variabili» è gratuita?
Sì — il testo completo di «Origine e precedenza delle variabili» è 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 DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.
Cosa imparerò in «Origine e precedenza delle variabili»?
Tracci una prima mappa delle origini delle variabili. Eserciti DevOps Bootcamp 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 DevOps Bootcamp?
Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Origine e precedenza delle variabili»?
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 DevOps Bootcamp?
Sì. Ogni lezione DevOps Bootcamp 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
- Definire e usare vars in un play
- La sintassi di sostituzione {{ }}
- Variabili extra dalla riga di comando
- Origine e precedenza delle variabili