0Pricing
DevOps Bootcamp · Leçon

Try / catch avec rescue et always

Récupérez élégamment après les échecs.

Try / catch avec rescue et always est une leçon DevOps Bootcamp gratuite sur CoddyKit. Ceci est la leçon 2 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 DevOps Bootcamp, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours DevOps Bootcamp comprend 4 leçons au total.

Les blocks bénéficient d'un filet de sécurité

Associez un block à rescue et always pour obtenir les rôles try, catch et finally appliqués à vos tâches. Les échecs deviennent récupérables. 🛟

La section rescue

Si une tâche du block échoue, Ansible passe à rescue et exécute ces tâches à la place, comme une clause catch.

- block:
    - ansible.builtin.command: /opt/risky-step
  rescue:
    - ansible.builtin.debug:
        msg: "Step failed, recovering"

always s'exécute quoi qu'il arrive

La section always s'exécute que le block ait réussi ou échoué, ce qui est idéal pour le nettoyage, comme la suppression d'un fichier temporaire.

- block:
    - ansible.builtin.command: /opt/deploy
  always:
    - ansible.builtin.file:
        path: /tmp/lock
        state: absent

Les trois réunis

Utilisez block, rescue et always comme une seule structure : essayez d'effectuer le travail, interceptez les échecs, puis terminez toujours proprement.

- block:
    - ansible.builtin.command: /opt/deploy
  rescue:
    - ansible.builtin.debug:
        msg: "Rolling back"
  always:
    - ansible.builtin.debug:
        msg: "Done either way"

rescue réinitialise l'échec

Si rescue se termine correctement, l'hôte n'est plus considéré comme en échec. Le play continue comme si le block avait réussi.

Ordre d'exécution

Les tâches du block s'exécutent d'abord ; en cas d'échec, le reste du block est ignoré et rescue démarre. always s'exécute en dernier dans tous les cas.

Quand rescue échoue à son tour

Si une tâche de rescue échoue également, l'hôte est marqué comme en échec, mais always s'exécute tout de même avant l'arrêt du play pour cet hôte.

Examiner l'erreur

Dans rescue, vous pouvez lire ansible_failed_task et ansible_failed_result pour voir quelle tâche a échoué et pourquoi.

- rescue:
    - ansible.builtin.debug:
        msg: "Failed task was {{ ansible_failed_task.name }}"

Un cas concret : l'annulation

Le modèle classique consiste à effectuer le déploiement dans block, à annuler le changement dans rescue, puis à redémarrer ou à déverrouiller dans always. Une récupération propre à chaque exécution.

Pas seulement masquer les erreurs

rescue sert à récupérer proprement, pas à faire taire les erreurs. Consignez l'échec et corrigez l'état ; ne faites pas comme si rien ne s'était passé. ⚠️

Sans rescue, l'arrêt est immédiat

Sans section rescue, un block en échec se comporte comme n'importe quelle tâche en échec : il arrête immédiatement le play pour cet hôte.

Vérification rapide

Confirmons le comportement de always.

Récapitulatif

rescue intercepte les échecs d'un block et récupère l'hôte, tandis que always s'exécute à chaque fois pour le nettoyage. Try, catch, finally pour Ansible. ✅

Questions Fréquemment Posées

La leçon « Try / catch avec rescue et always » est-elle gratuite ?

Oui — le texte complet de « Try / catch avec rescue et always » 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 DevOps Bootcamp, passe à CoddyKit PRO. Le cours DevOps Bootcamp comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Try / catch avec rescue et always » ?

Récupérez élégamment après les échecs. Tu pratiques DevOps Bootcamp 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 DevOps Bootcamp ?

Aucune expérience préalable n'est requise. DevOps Bootcamp 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 2 sur 4.

Combien de temps prend la leçon « Try / catch avec rescue et always » ?

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 DevOps Bootcamp ?

Oui. Chaque leçon DevOps Bootcamp 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 à DevOps Bootcamp