Sobes.tech
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 notify en 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_tasks donde 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