0Pricing
Ansible Academy · Leçon

Contrôler les échecs : failed_when et ignore_errors

Définissez ce qui constitue un échec.

Contrôler les échecs : failed_when et ignore_errors est une leçon Ansible Academy gratuite sur CoddyKit. Ceci est la leçon 3 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ansible Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ansible Academy comprend 4 leçons au total.

Vous décidez ce que signifie un échec

Ansible considère qu’une tâche échoue lorsque son code de retour est différent de zéro, mais vous pouvez modifier ce comportement. Deux mots-clés vous permettent de redéfinir l’échec. 🎛️

ignore_errors permet de continuer

Définissez ignore_errors à true : la tâche en échec est journalisée, mais l’exécution ne s’arrête pas. L’hôte reste dans l’exécution.

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

Elle apparaît toujours comme échouée

ignore_errors ne masque pas l’échec : la sortie contient toujours FAILED. Il empêche seulement l’échec d’arrêter les tâches suivantes.

failed_when redéfinit l’échec

Utilisez failed_when pour définir votre propre condition d’échec. La tâche échoue uniquement lorsque votre expression est vraie.

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

Associez-le à register

failed_when examine généralement un résultat enregistré : son rc, stdout ou stderr. Capturez d’abord la sortie, puis évaluez-la.

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

Cette tâche n’échoue jamais

Définissez failed_when à false : la tâche ne peut jamais échouer, même avec un code différent de zéro. C’est plus propre qu’ignore_errors pour les commandes connues pour être bruyantes.

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

Faites correspondre plusieurs conditions

failed_when peut recevoir une liste de conditions reliées par and, ou une expression composée avec or pour définir des règles plus riches.

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

changed_when est un proche parent

Le mot-clé associé changed_when contrôle l’état de modification plutôt que l’échec. Il est utile pour indiquer qu’une tâche de commande n’a jamais modifié le système.

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

ignore contre failed_when

Choisissez failed_when lorsque vous pouvez décrire précisément la réussite ; utilisez ignore_errors uniquement pour les étapes réellement facultatives, exécutées au mieux.

S’associe bien à rescue

Au lieu d’ignorer les erreurs, laissez un véritable échec déclencher un bloc rescue. Vous obtenez une récupération plutôt qu’un saut silencieux. 🤝

Tous deux s’appliquent à une tâche

failed_when et ignore_errors s’appliquent tous deux à une seule tâche, et non à toute l’exécution. Chaque tâche décide de son propre comportement en cas d’échec.

Vérification rapide

Comparons les deux mots-clés.

Récapitulatif

failed_when définit précisément le moment où une tâche échoue, tandis qu’ignore_errors permet à l’exécution de continuer malgré un échec. C’est vous qui définissez les règles. ✅

Questions Fréquemment Posées

La leçon « Contrôler les échecs : failed_when et ignore_errors » est-elle gratuite ?

Oui — le texte complet de « Contrôler les échecs : failed_when et ignore_errors » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ansible Academy, passe à CoddyKit PRO. Le cours Ansible Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Contrôler les échecs : failed_when et ignore_errors » ?

Définissez ce qui constitue un échec. Tu pratiques Ansible Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Ansible Academy ?

Aucune expérience préalable n'est requise. Ansible Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 3 sur 4.

Combien de temps prend la leçon « Contrôler les échecs : failed_when et ignore_errors » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Ansible Academy ?

Oui. Chaque leçon Ansible Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Regrouper les tâches avec block
  2. Try / catch avec rescue et always
  3. Contrôler les échecs : failed_when et ignore_errors
  4. Assertions personnalisées avec le module fail
← Retour à Ansible Academy