0Pricing
Ansible Academy · Lección

Controlar errores: failed_when e ignore_errors

Defina qué se considera un error

Controlar errores: failed_when e ignore_errors es una lección gratuita de Ansible Academy en CoddyKit. Esta es la lección 3 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 Ansible Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ansible Academy incluye 4 lecciones en total.

Usted decide qué significa fallar

Ansible marca una tarea como fallida cuando el código de retorno es distinto de cero, pero puede cambiar este comportamiento. Dos palabras clave le permiten redefinir el fallo. 🎛️

ignore_errors permite continuar

Establezca ignore_errors en true y la tarea fallida quedará registrada, pero no detendrá el play. El host permanecerá en el play.

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

Sigue apareciendo como fallida

ignore_errors no oculta el fallo; la salida seguirá mostrando FAILED. Solo evita que el fallo detenga las tareas posteriores.

failed_when redefine el fallo

Use failed_when para establecer su propia condición de fallo. La tarea fallará solo cuando su expresión sea true.

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

Combínelo con register

failed_when suele examinar un resultado registrado: su rc, stdout o stderr. Capture primero la salida y después evalúela.

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

Esta tarea nunca falla

Establezca failed_when en false y la tarea nunca podrá fallar, ni siquiera con un código distinto de cero. Es más limpio que usar ignore_errors para comandos que generan ruido de forma conocida.

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

Evalúe varias condiciones

failed_when puede recibir una lista de condiciones unidas mediante and, o una expresión compuesta con or para crear reglas más completas.

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

changed_when es un pariente

La opción relacionada changed_when controla el estado de cambio en lugar del fallo, lo que resulta útil para marcar una tarea de comando como nunca modificada.

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

ignore_errors frente a failed_when

Use failed_when cuando pueda describir el éxito con precisión; reserve ignore_errors para pasos realmente opcionales que se ejecutan como mejor esfuerzo.

Combina bien con rescue

En lugar de ignorar los errores, deje que un fallo real active un bloque rescue. Así obtiene recuperación en lugar de un salto silencioso. 🤝

Ambos se aplican por tarea

Tanto failed_when como ignore_errors se aplican a una sola tarea, no a todo un play. Cada tarea decide cómo comportarse ante un fallo.

Comprobación rápida

Comparemos las dos palabras clave.

Resumen

failed_when define exactamente cuándo falla una tarea, mientras que ignore_errors permite que el play continúe después de un fallo. Usted controla las reglas. ✅

Preguntas frecuentes

¿La lección «Controlar errores: failed_when e ignore_errors» es gratis?

Sí — el texto completo de «Controlar errores: failed_when e ignore_errors» 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 Ansible Academy, actualiza a CoddyKit PRO. El curso de Ansible Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Controlar errores: failed_when e ignore_errors»?

Defina qué se considera un error Practicas Ansible Academy 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 Ansible Academy?

No se requiere experiencia previa. Ansible Academy 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 3 de 4.

¿Cuánto tiempo toma la lección «Controlar errores: failed_when e ignore_errors»?

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 Ansible Academy?

Sí. Cada lección de Ansible Academy 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 Ansible Academy