Ignorar errores en Ansible

Por qué debemos ignorar errores
Cómo ignorar errores
Ejemplos de cómo ignorar errores
Por qué debemos ignorar errores
En Ansible, cuando un comando falla, por defecto, la ejecución del playbook también falla, y el playbook se detiene.
Existen situaciones en las que sabemos que un comando va a fallar (por ejemplo, porque el archivo que intentamos borrar no existe), pero eso no significa que queramos que el playbook se detenga. En estos casos, es útil poder ignorar estos errores.
Ignorar los errores puede ser especialmente útil en playbooks que tienen muchas tareas o en aquellos que se ejecutan de manera regular y hay situaciones en las que los errores son inevitables.
Cómo ignorar errores
Para ignorar los errores, podemos utilizar el modificador ignore_errors. Este modificador se puede utilizar a nivel de tarea o a nivel de playbook. Si lo utilizamos a nivel de tarea, afecta únicamente a la tarea en cuestión. Si lo utilizamos a nivel de playbook, afecta a todo el playbook.
Cuando utilizamos ignore_errors en una tarea, Ansible no detiene la ejecución del playbook si esa tarea falla. En su lugar, continúa con la ejecución del playbook y muestra un mensaje de advertencia indicando que la tarea ha fallado.
Ejemplos de cómo ignorar errores
A nivel de tarea
En el siguiente ejemplo, la tarea intenta borrar un archivo. Si el archivo no existe, la tarea falla. Utilizamos ignore_errors para indicarle a Ansible que ignore los errores y continúe ejecutando el playbook:
- name: Borrar archivo
file:
path: /ruta/al/archivo
state: absent
ignore_errors: yes
Si el archivo no existe, esta tarea fallará, pero Ansible continuará ejecutando el playbook sin interrupciones.
A nivel de playbook
En el siguiente ejemplo, utilizamos ignore_errors a nivel de playbook para indicarle a Ansible que ignore los errores de todas las tareas:
- name: Playbook de ejemplo
hosts: servidores
ignore_errors: yes # Ignorar errores de todas las tareas
tasks:
- name: Tarea 1
...
- name: Tarea 2
...
Si alguna de las tareas falla, Ansible no detendrá la ejecución del playbook, sino que simplemente mostrará un mensaje de advertencia.
Conclusión
Ignorar los errores en Ansible puede ser una herramienta útil para mantener los playbooks en ejecución aún cuando ocurren errores que no son críticos. Sin embargo, es importante tener en cuenta que utilizar ignore_errors puede hacer que sea más difícil encontrar problemas en nuestro código, ya que estamos suprimiendo las advertencias.
Recuerda utilizar ignore_errors sólo cuando sea necesario y siempre asegurándonos de que estamos resolviendo los problema que lo causan de manera efectiva.
Preguntas frecuentes
¿Cuál es el modificador que nos permite ignorar errores en Ansible?
El modificador que nos permite ignorar errores en Ansible es ignore_errors.
¿Cuándo es útil ignorar errores en Ansible?
Ignorar errores en Ansible puede ser útil en situaciones en las que sabemos que un comando va a fallar, pero no queremos que la ejecución del playbook se detenga.
¿En qué situaciones no es recomendable ignorar errores en Ansible?
No es recomendable utilizar ignore_errors cuando se presentan errores que son críticos, ya que podría ocultar problemas importantes.
¿Qué otros modificadores similares existen en Ansible?
Además de ignore_errors, Ansible cuenta con otros modificador que nos permiten especificar cómo manejar los errores. Algunos de ellos son changed_when y failed_when.
Ejemplos de código o comandos
No se incluyen ejemplos de código o comandos en este artículo.
[nekopost slugs="reintentos-ansibles,instalar-ansible-centos7,copiar-multiples-archivos-ansible,control-systemd-ansible,como-usar-vars-adicionales-en-ansible,salida-del-comando-de-impresion-ansible,bucles-ansible,tutorial-de-modulo-de-usuario-de-ansible,como-usar-sshpass-para-iniciar-sesion-para-ansible"]

Deja una respuesta