0Pricing
Ansible Academy · Lezione

Controllare gli errori: failed_when e ignore_errors

Definisca cosa viene considerato un errore

Controllare gli errori: failed_when e ignore_errors è 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.

Decida cosa significa un errore

Ansible considera fallito un task quando restituisce un codice diverso da zero, ma può modificare questo comportamento. Due keyword permettono di ridefinire l'errore. 🎛️

ignore_errors continua l'esecuzione

Imposti ignore_errors su true e un task non riuscito viene registrato, ma non interrompe il play. L'host rimane nel play.

- name: Try optional cleanup
  ansible.builtin.command: /opt/maybe-missing
  ignore_errors: true

Il task risulta comunque fallito

ignore_errors non nasconde il fallimento: l'output continua a mostrare FAILED. Impedisce soltanto al fallimento di interrompere i task successivi.

failed_when ridefinisce il fallimento

Utilizzi failed_when per definire la propria condizione di fallimento. Il task fallisce solo quando la Sua espressione restituisce true.

- name: Check status
  ansible.builtin.command: /opt/healthcheck
  register: result
  failed_when: result.rc > 1

Abbinarlo a register

failed_when esamina in genere un risultato registrato: il suo rc, stdout o stderr. Acquisisca prima l'output, poi lo valuti.

- ansible.builtin.command: grep ERROR app.log
  register: out
  failed_when: "'CRITICAL' in out.stdout"

Non faccia mai fallire questo task

Imposti failed_when su false e il task non può mai fallire, nemmeno con un codice diverso da zero. È più pulito di ignore_errors per i comandi notoriamente rumorosi.

- ansible.builtin.command: pkill myapp
  failed_when: false

Corrispondenza con più condizioni

failed_when può accettare un elenco di condizioni unite da and oppure un'espressione composta con or, per definire regole più articolate.

failed_when:
  - result.rc != 0
  - "'skipped' not in result.stdout"

changed_when è un parente

Il relativo changed_when controlla lo stato changed invece del fallimento, ed è utile per indicare che un task command non ha mai apportato modifiche.

- ansible.builtin.command: /opt/report
  changed_when: false

ignore vs failed_when

Ricorra a failed_when quando può descrivere con precisione il successo; utilizzi ignore_errors soltanto per passaggi davvero opzionali e con esito migliorativo.

Si abbina bene a rescue

Anziché ignorare gli errori, lasci che un vero fallimento attivi un blocco rescue. Otterrà un recupero invece di un'omissione silenziosa. 🤝

Entrambi si applicano a un singolo task

Sia failed_when sia ignore_errors appartengono a un singolo task, non a un intero play. Ogni task decide autonomamente come gestire il proprio fallimento.

Controllo rapido

Confrontiamo le due keyword.

Riepilogo

failed_when definisce esattamente quando un task fallisce, mentre ignore_errors permette al play di continuare dopo un fallimento. Le regole dipendono da Lei. ✅

Domande Frequenti

La lezione «Controllare gli errori: failed_when e ignore_errors» è gratuita?

Sì — il testo completo di «Controllare gli errori: failed_when e ignore_errors» è 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 «Controllare gli errori: failed_when e ignore_errors»?

Definisca cosa viene considerato un errore 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 «Controllare gli errori: failed_when e ignore_errors»?

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. Raggruppare le attività con block
  2. Try / catch con rescue e always
  3. Controllare gli errori: failed_when e ignore_errors
  4. Assert personalizzati con il modulo fail
← Torna a Ansible Academy