0Pricing
Ansible Academy · Lezione

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: lb01

Un 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: localhost

Le 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: true

Perché 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: app01

I 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: ver

Raccogliere 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

  1. Automatizzare i dispositivi di rete con cli_command
  2. delegate_to e run_once per l'orchestrazione
  3. Coordinare i livelli Web, App e DB
  4. Drenare e riabilitare un load balancer
← Torna a Ansible Academy