delegate_to e run_once per l'orchestrazione
Esegua un'attività su un host per conto di molti
delegate_to e run_once per l'orchestrazione è una lezione Ansible Academy gratuita su CoddyKit. Questa è la lezione 2 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.
I task non vengono sempre eseguiti dove si pensa
Per impostazione predefinita, ogni task viene eseguito sul proprio host di destinazione. Per l'orchestrazione, a volte è necessario eseguire un task altrove. 🎯
Conoscere delegate_to
La parola chiave delegate_to esegue un task su un host diverso da quello corrente, utilizzando comunque le variabili di quell'host.
- name: Add web node to load balancer
community.general.haproxy:
host: "{{ inventory_hostname }}"
state: enabled
delegate_to: lb01Un caso d'uso classico
Durante l'iterazione sui nodi web, deleghi la modifica del load balancer all'host del LB. Il play rimane specifico per ogni nodo, ma l'azione viene eseguita sul LB.
Delegare a localhost
Esegua un task sul proprio nodo di controllo delegandolo a localhost. È ideale per chiamare un'API o inviare una notifica da un unico punto.
- name: Notify chat
ansible.builtin.uri:
url: "{{ webhook }}"
method: POST
delegate_to: localhostLe variabili restano con l'host originale
La delega sposta il luogo in cui viene eseguito un task, non i facts che questo vede. inventory_hostname indica ancora la destinazione originale, non il delegato.
Conoscere run_once
La parola chiave run_once esegue un task una sola volta per l'intero batch, non una volta per host. Ansible sceglie il primo host per eseguirlo.
- name: Run database migration
ansible.builtin.command: ./migrate.sh
run_once: truePerché run_once è importante
Alcune azioni devono essere eseguite una sola volta, ad esempio una migrazione o un'elezione del leader. run_once impedisce a ogni host di ripetere lo stesso passaggio condiviso.
Usarli insieme
Combini run_once con delegate_to per eseguire un'azione su un unico host scelto, ad esempio una migrazione da un singolo nodo applicativo.
- name: Migrate db once
ansible.builtin.command: ./migrate.sh
run_once: true
delegate_to: app01I risultati sono condivisi
Con run_once, un risultato registrato viene condiviso tra tutti gli host del batch. Tutti vedono l'output di quell'unica esecuzione.
- ansible.builtin.command: cat /etc/version
run_once: true
register: verRaccogliere i facts da un delegato
Usi delegate_facts se vuole associare i facts raccolti all'host delegato invece che a quello corrente. È disattivato per impostazione predefinita.
Orchestrazione, non solo configurazione
Insieme, queste parole chiave trasformano la configurazione per host in una vera orchestrazione: coordinare un'unica azione su un'intera flotta da un solo punto.
Verifica rapida
Verifichi queste parole chiave per l'orchestrazione.
Riepilogo
Usi delegate_to per eseguire un task su un altro host e run_once per eseguirlo una sola volta per batch: sono il cuore dell'orchestrazione. ✅
Domande Frequenti
La lezione «delegate_to e run_once per l'orchestrazione» è gratuita?
Sì — il testo completo di «delegate_to e run_once per l'orchestrazione» è 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 «delegate_to e run_once per l'orchestrazione»?
Esegua un'attività su un host per conto di molti 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 2 di 4.
Quanto tempo richiede la lezione «delegate_to e run_once per l'orchestrazione»?
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
- Automatizzare i dispositivi di rete con cli_command
- delegate_to e run_once per l'orchestrazione
- Coordinare i livelli Web, App e DB
- Drenare e riabilitare un load balancer