0Pricing
DevOps Bootcamp · Lektion

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

Es 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 > 1

Mit 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: false

Mehrere 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: false

ignore 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

  1. Tasks mit block gruppieren
  2. Try / Catch mit rescue und always
  3. Fehler steuern: failed_when und ignore_errors
  4. Eigene Assertions mit dem fail-Modul
← Zurück zu DevOps Bootcamp