Muchas veces, cuando trabajamos con tareas de Ansible nos encontramos que en más de una ocasión, la acción falla.
Evidentemente, si este fallo es debido a una mala configuración del servidor o que Ansible no se encuentra con el estado esperado, tendremos que revisar qué está pasando para poder solucionaro.
En cambio, muchas otras veces, este error es temporal, o bien porque el servidor de destino está ocupado y no puede procesar la operación o simplemente porque se ha dado algún tipo de timeout y simplemente reintentando la tarea, ésta funcionará correctamente.
Para poder reintentar una tarea de Ansible de forma automática, necesitaremos registrar el resultado de la ejecución con register: task_result
. Una vez tengamos esta variable, haremos los correspondientes reintentos until: task_result.rc == 0
, con la opción retries: xx
dónde xx
será el número de intentos a hacer. También podemos poner la opción delay: xx
para indicar cuanto tiempo dejará pasar entre intento y intento.
1 |
|
Y éste, seria el comportamiento real de esta tarea:
Espero que os sirva.
Un saludo!
Miquel.