Ansible Reboot
Ansible es una herramienta de automatización muy popular que se utiliza para realizar una variedad de tareas. Si bien es capaz de automatizar muchas tareas en diferentes tipos de sistemas, hay un caso particular que puede resultar un desafío en Ansible: reiniciar un sistema y esperar a que vuelva a estar accesible.
Hasta ahora, Ansible no ha incluido una forma integrada de reiniciar un sistema y esperar a que vuelva a estar en línea. Sin embargo, hay varios enfoques que se pueden seguir con Ansible para lograr el reinicio y la espera del sistema para que vuelva en línea y que vamos a cubrir en este artículo.
Reiniciando un sistema utilizando Ansible
Hay muchas formas de realizar un reinicio del sistema utilizando Ansible, pero todas implican una solución personalizada. A continuación, se muestra el uso del módulo del sistema para reiniciar un sistema.
- name: Reiniciar el servidor
command: shutdown -r now
async: 1
poll: 0
become: true
ignore_errors: true
register: result
El comando de reinicio utilizado en este ejemplo se basa en un sistema que utiliza la herramienta shutdown. El uso de "become: true" implica que se debe tener acceso a los permisos de administrador para realizar el reinicio. Esto puede variar dependiendo del sistema operativo en cuestión.
Esperando a que el sistema vuelva
Es importante esperar a que el sistema reiniciado se vuelva accesible antes de continuar automatizando tareas en él. Hay varias formas de hacer esto en Ansible, incluyendo el uso del módulo de espera.
Uno de los enfoques más sencillos para esperar a que el sistema vuelva después de reiniciarse es utilizar una tarea adicional después del reinicio para verificar el tiempo de actividad del sistema.
- name: Esperar a que el sistema vuelva después de reiniciarse
wait_for_connection:
delay: 60
timeout: 300
Este enfoque espera 60 segundos antes de intentar conectarse al host. Si se alcanza el tiempo máximo de espera de 300 segundos y no se puede realizar la conexión, la tarea falla.
Conclusión
Reiniciar un sistema y esperar que vuelva a estar en línea es un desafío común en Ansible, pero existen soluciones personalizadas para lograr este resultado. En este artículo, discutimos algunos enfoques generales que involucran el uso de módulos como system y wait_for_connection. Al probar estas soluciones personalizadas, debe tener en cuenta las variaciones en los sistemas operativos y los requerimientos de administrador necesarios para realizar las acciones de reinicio.
Preguntas frecuentes
¿Se puede utilizar Ansible para reiniciar un sistema remoto?
Sí, Ansible es muy útil para realizar tareas de automatización en sistemas remotos.
¿Cuál es el tiempo máximo de espera para que el sistema vuelva después de reiniciar?
El tiempo máximo de espera dependerá de cada sistema y las condiciones en las que está operando. Un tiempo común es de entre 3 y 5 minutos.
¿Hay algún problema específico al reiniciar sistemas Linux?
Es importante tener en consideración que para algunos sistemas Linux, se requerirán permisos de usuario de administrador para poder reiniciar el sistema.
Deja una respuesta