DevOps-bootcamp · Lektion

Styr fel: failed_when och ignore_errors

Definiera vad som räknas som ett fel

Lektion 3 av 413 steg

Styr fel: failed_when och ignore_errors är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 3 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Du bestämmer vad som räknas som ett fel

Ansible markerar en task som misslyckad vid en returkod som inte är noll, men det kan du ändra. Med två nyckelord kan du omdefiniera vad som räknas som ett fel. 🎛️

ignore_errors fortsätter körningen

Ställ in ignore_errors på true så loggas en misslyckad task, men play-körningen stoppas inte. Värden förblir en del av play-körningen.

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

Den visas fortfarande som misslyckad

ignore_errors döljer inte felet; utdata visar fortfarande FAILED. Det hindrar bara felet från att stoppa senare tasker.

failed_when omdefinierar fel

Använd failed_when för att ange ditt eget felvillkor. Tasken misslyckas endast när ditt uttryck är sant.

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

Kombinera med register

failed_when granskar vanligtvis ett registrerat resultat: dess rc, stdout eller stderr. Fånga utdata först och bedöm den sedan.

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

Låt aldrig den här tasken misslyckas

Ställ in failed_when på false så kan tasken aldrig misslyckas, inte ens vid en kod som inte är noll. Det är renare än ignore_errors för kommandon med kända och förväntade felmeddelanden.

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

Matcha flera villkor

failed_when kan ta emot en lista med villkor som binds samman med and, eller ett sammansatt uttryck med or för mer avancerade regler.

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

changed_when är en släkting

Det närliggande changed_when styr statusen för ändring i stället för misslyckande. Det är användbart när en kommandotask ska markeras som aldrig ändrad.

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

ignore jämfört med failed_when

Använd failed_when när du kan beskriva lyckat resultat exakt; använd bara ignore_errors för steg som verkligen är valfria och körs med bästa möjliga försök.

Fungerar bra med rescue

I stället för att ignorera fel kan du låta ett verkligt fel utlösa ett rescue-block. Då får du återställning i stället för att steget hoppas över i tysthet. 🤝

Båda gäller per task

Både failed_when och ignore_errors anges på en enskild task, inte för en hel play-körning. Varje task bestämmer själv hur fel ska hanteras.

Snabb kontroll

Låt oss jämföra de två nyckelorden.

Sammanfattning

failed_when definierar exakt när en task misslyckas, medan ignore_errors låter play-körningen fortsätta efter ett fel. Det är du som bestämmer reglerna. ✅

Gratis att börja

Lär dig DevOps-bootcamp med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
142
Lektioner
568

Vanliga frågor

Är lektionen ”Styr fel: failed_when och ignore_errors” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Styr fel: failed_when och ignore_errors”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad lär jag mig i ”Styr fel: failed_when och ignore_errors”?

Definiera vad som räknas som ett fel Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 3 av 4.

Hur lång tid tar lektionen ”Styr fel: failed_when och ignore_errors”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Gruppera uppgifter med block
  2. Try / catch med rescue och always
  3. Styr fel: failed_when och ignore_errors
  4. Anpassade assertioner med modulen fail
← Tillbaka till DevOps-bootcamp