Ansible Academy · Lección

Listen: un disparador, varios handlers

Distribuya una sola notificación

Lección 4 de 413 pasos

Listen: un disparador, varios handlers es una lección gratuita de Ansible Academy en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Ansible Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Ansible Academy incluye 4 lecciones en total.

Un evento, muchas reacciones

A veces un cambio debe activar varios handlers a la vez. La palabra clave listen permite que muchos handlers se suscriban a un único tema.

Notifique a un tema, no a un nombre

Con listen, el notify de una tarea apunta al nombre lógico de un evento en lugar de al título de un handler específico.

- name: Update certs
  ansible.builtin.copy:
    src: site.pem
    dest: /etc/ssl/site.pem
  notify: restart web stack

Los handlers se suscriben con listen

Cada handler añade una línea listen con el mismo nombre de tema. Todos los handlers que escuchan ese tema se activan cuando recibe una notificación.

handlers:
  - name: Restart nginx
    ansible.builtin.service:
      name: nginx
      state: restarted
    listen: restart web stack

Muchos handlers, un tema

Asigne el mismo valor de listen a varios handlers y una única notificación se distribuirá a todos ellos. Es ideal para reinicios agrupados.

  - name: Restart php-fpm
    ansible.builtin.service:
      name: php-fpm
      state: restarted
    listen: restart web stack

Desacople las tareas de los handlers

La gran ventaja es el desacoplamiento: las tareas hacen referencia a un tema y puede añadir o eliminar handlers sin modificar las tareas que envían las notificaciones.

El nombre sigue siendo opcional, pero útil

Un handler con listen aún puede tener un name, lo que mantiene legible la salida y permite que otras tareas también le envíen notificaciones directamente.

Un handler puede escuchar varios temas

Asigne a listen una lista y un handler responderá a varios temas diferentes. Reaccionará al evento que reciba la notificación.

    listen:
      - restart web stack
      - reload tls

Sigue siendo idempotente

Las notificaciones basadas en temas siguen las mismas reglas: los handlers solo se activan con changed y cada uno continúa ejecutándose como máximo una vez por play.

El orden sigue siendo el de definición

Cuando un tema activa varios handlers, estos se ejecutan en el orden en que se definieron en la lista de handlers, igual que los handlers normales.

Común en roles compartidos

Los roles reutilizables usan listen para que quienes los consumen notifiquen a un tema estable, mientras el role puede cambiar libremente su conjunto interno de handlers.

Notify frente a listen

notify es la señal que envía una tarea; listen es la suscripción de un handler. Juntos convierten un evento en muchas acciones. 🔔

Comprobación rápida

Desea que una sola directiva notify reinicie tres servicios a la vez. ¿Qué permite que varios handlers respondan a un solo tema?

Resumen

Con listen, una tarea notifica un tema y se ejecuta cada handler suscrito. Esto desacopla las tareas de los handlers y permite escalar de forma ordenada. 🎯

Gratis para empezar

Aprende YAML con un tutor de IA — gratis

Escribe y ejecuta código real en tu navegador, obtén ayuda instantánea de un tutor de IA disponible 24/7 y continúa donde lo dejaste en la web o en la aplicación.

Cursos
30
Lecciones
120

Preguntas frecuentes

¿La lección «Listen: un disparador, varios handlers» es gratis?

Sí — el texto completo de «Listen: un disparador, varios handlers» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Ansible Academy, actualiza a CoddyKit PRO. El curso de Ansible Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Listen: un disparador, varios handlers»?

Distribuya una sola notificación Practicas Ansible Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Ansible Academy?

No se requiere experiencia previa. Ansible Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.

¿Cuánto tiempo toma la lección «Listen: un disparador, varios handlers»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Ansible Academy?

Sí. Cada lección de Ansible Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Notificar a un handler cuando haya cambios
  2. Definir handlers y patrones de reinicio
  3. Cuándo se ejecutan los handlers y flush_handlers
  4. Listen: un disparador, varios handlers
← Volver a Ansible Academy