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: trueIl 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 > 1Abbinarlo 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: falseCorrispondenza 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: falseignore 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
- Raggruppare le attività con block
- Try / catch con rescue e always
- Controllare gli errori: failed_when e ignore_errors
- Assert personalizzati con il modulo fail