Junior
¿Qué son los manejadores?
sobes.tech AI
Respuesta de la IA
Los manejadores (Handlers) en el contexto de DevOps, especialmente en herramientas como Ansible, son tareas o bloques de código que se ejecutan solo bajo ciertas condiciones, cuando son explícitamente "notificados" por otra tarea. Se utilizan para reiniciar servicios, reiniciar servidores u realizar otras acciones que deben ocurrir solo después de realizar cambios significativos en la configuración.
Características clave:
- Se ejecutan por notificación: El manejador se inicia solo después de que una o varias tareas lo "notifican" explícitamente (por ejemplo, usando
notifyen Ansible). - Ejecución única: Incluso si varias tareas notifican al mismo manejador, este se ejecutará solo una vez al final del playbook o sección
include_tasks/import_tasksdonde esté definido. Esto evita múltiples reinicios de servicios. - Enfoque declarativo: Permiten definir de manera declarativa qué acciones deben tomarse al cambiar el estado del sistema, sin preocuparse por ejecutar manualmente esas acciones.
Ejemplo de notificación de manejador en una tarea de Ansible:
- name: Configurar servidor web # Tarea que puede cambiar la configuración
template:
src: nginx.conf.j2
dest: /etc/nginx/nginx.conf
notify: # Notificamos al manejador
- restart nginx
Definición del manejador:
handlers:
- name: restart nginx # Nombre del manejador, coincide con el nombre en notify
service:
name: nginx
state: restarted