0Pricing
DevOps Bootcamp · Lección

Try / Catch con rescue y always

Recupérese correctamente de los errores

Try / Catch con rescue y always es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

Los bloques tienen una red de seguridad

Combine un block con rescue y always para obtener try, catch y finally para sus tareas. Los errores se vuelven recuperables. 🛟

La sección rescue

Si falla cualquier tarea del block, Ansible salta a rescue y ejecuta esas tareas, como una cláusula catch.

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

always se ejecuta pase lo que pase

La sección always se ejecuta tanto si el block tiene éxito como si falla; es perfecta para tareas de limpieza, como eliminar un archivo temporal.

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

Los tres juntos

Utilice block, rescue y always como una única estructura: intente realizar el trabajo, capture los errores y termine siempre de forma ordenada.

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

rescue restablece el estado de error

Si rescue se completa correctamente, el host deja de considerarse fallido. El play continúa como si el block hubiera finalizado correctamente.

Orden de ejecución

Las tareas del block se ejecutan primero; si se produce un error, se omite el resto del block y comienza rescue. always se ejecuta al final en todos los casos.

Cuando rescue falla

Si también falla una tarea de rescue, el host se marca como fallido, pero always se ejecuta antes de que el play se detenga para ese host.

Inspeccionar el error

Dentro de rescue puede leer ansible_failed_task y ansible_failed_result para saber qué tarea falló y por qué.

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

Un uso real: rollback

El patrón clásico consiste en realizar el despliegue en un block, deshacer el cambio en rescue y reiniciar o desbloquear en always. Una recuperación limpia en cada ejecución.

No se trata solo de ocultar errores

rescue sirve para recuperarse correctamente, no para silenciar errores. Registre el fallo y corrija el estado; no finja que no ocurrió nada. ⚠️

Sin rescue, la ejecución se detiene

Sin una sección rescue, un block fallido se comporta como cualquier tarea fallida: detiene inmediatamente el play para ese host.

Comprobación rápida

Confirmemos cómo se comporta always.

Resumen

rescue captura los errores de un block y permite recuperar el host, mientras que always se ejecuta siempre para realizar tareas de limpieza. Try, catch y finally para Ansible. ✅

Preguntas frecuentes

¿La lección «Try / Catch con rescue y always» es gratis?

Sí — el texto completo de «Try / Catch con rescue y always» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «Try / Catch con rescue y always»?

Recupérese correctamente de los errores Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Try / Catch con rescue y always»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Agrupar tareas con block
  2. Try / Catch con rescue y always
  3. Controlar errores: failed_when e ignore_errors
  4. Aserciones personalizadas con el módulo fail
← Volver a DevOps Bootcamp