Fehler steuern: failed_when und ignore_errors
Definieren Sie, was als Fehler gilt.
Fehler steuern: failed_when und ignore_errors ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Sie entscheiden, was als Fehler gilt
Ansible lässt eine Task bei einem von null verschiedenen Rückgabecode fehlschlagen, aber Sie können dieses Verhalten überschreiben. Mit zwei Schlüsselwörtern können Sie die Fehlerdefinition neu festlegen. 🎛️
ignore_errors setzt die Ausführung fort
Setzen Sie ignore_errors auf true: Eine fehlgeschlagene Task wird protokolliert, stoppt aber nicht den Play. Der Host bleibt im Play.
- name: Try optional cleanup
ansible.builtin.command: /opt/maybe-missing
ignore_errors: trueEs wird weiterhin als fehlgeschlagen angezeigt
ignore_errors blendet den Fehler nicht aus; in der Ausgabe steht weiterhin FAILED. Es verhindert lediglich, dass der Fehler nachfolgende Tasks anhält.
failed_when definiert Fehler neu
Verwenden Sie failed_when, um Ihre eigene Fehlerbedingung festzulegen. Die Task schlägt nur fehl, wenn Ihr Ausdruck true ergibt.
- name: Check status
ansible.builtin.command: /opt/healthcheck
register: result
failed_when: result.rc > 1Mit register kombinieren
failed_when prüft normalerweise ein registriertes Ergebnis: dessen rc, stdout oder stderr. Erfassen Sie zuerst die Ausgabe und bewerten Sie sie anschließend.
- ansible.builtin.command: grep ERROR app.log
register: out
failed_when: "'CRITICAL' in out.stdout"Diese Task schlägt nie fehl
Setzen Sie failed_when auf false, damit die Task niemals fehlschlägt, auch nicht bei einem von null verschiedenen Rückgabecode. Für bekanntermaßen unruhige Befehle ist das sauberer als ignore_errors.
- ansible.builtin.command: pkill myapp
failed_when: falseMehrere Bedingungen abgleichen
failed_when kann eine Liste von Bedingungen enthalten, die mit and verknüpft sind, oder einen zusammengesetzten Ausdruck mit or für komplexere Regeln.
failed_when:
- result.rc != 0
- "'skipped' not in result.stdout"changed_when ist das Gegenstück
Das verwandte changed_when steuert statt des Fehlerstatus den Änderungsstatus. Das ist nützlich, um eine Command-Task als dauerhaft unverändert zu markieren.
- ansible.builtin.command: /opt/report
changed_when: falseignore und failed_when
Verwenden Sie failed_when, wenn Sie Erfolg präzise beschreiben können; setzen Sie ignore_errors nur für wirklich optionale Schritte nach dem Best-Effort-Prinzip ein.
Funktioniert gut mit rescue
Statt Fehler zu ignorieren, können Sie einen echten Fehler einen rescue-Block auslösen lassen. So erhalten Sie eine Wiederherstellung statt eines stillen Überspringens. 🤝
Beide gelten pro Task
Sowohl failed_when als auch ignore_errors gelten für eine einzelne Task, nicht für einen ganzen Play. Jede Task bestimmt ihr eigenes Fehlerverhalten.
Kurzer Check
Vergleichen Sie die beiden Schlüsselwörter.
Zusammenfassung
failed_when legt genau fest, wann eine Task fehlschlägt, während ignore_errors den Play nach einem Fehler fortsetzen lässt. Sie bestimmen die Regeln. ✅
Häufig gestellte Fragen
Ist die Lektion „Fehler steuern: failed_when und ignore_errors“ kostenlos?
Ja — der vollständige Text von „Fehler steuern: failed_when und ignore_errors“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Fehler steuern: failed_when und ignore_errors“?
Definieren Sie, was als Fehler gilt. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Fehler steuern: failed_when und ignore_errors“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Tasks mit block gruppieren
- Try / Catch mit rescue und always
- Fehler steuern: failed_when und ignore_errors
- Eigene Assertions mit dem fail-Modul