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: trueSigue 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 > 1Combí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: falseEvalú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: falseignore_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
- Agrupar tareas con block
- Try / Catch con rescue y always
- Controlar errores: failed_when e ignore_errors
- Aserciones personalizadas con el módulo fail