0Pricing
Ansible Academy · Lección

Cuándo se ejecutan los handlers y flush_handlers

Controle el momento de ejecución de los handlers al finalizar el play

Cuándo se ejecutan los handlers y flush_handlers es una lección gratuita de Ansible Academy en CoddyKit. Esta es la lección 3 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.

Los handlers se ejecutan al final

De forma predeterminada, todos los handlers notificados se ejecutan una vez, al final del play, después de que termine cada tarea. No en el momento en que recibieron la notificación.

Por qué se posponen

Posponerlos significa que un servicio se reinicia una sola vez incluso después de muchos cambios de configuración. Así se evitan reinicios innecesarios durante el play y se ahorra tiempo.

Por host, no de forma global

El momento de ejecución de los handlers se controla por host. Cada host ejecuta sus propios handlers en cola al final del play, de forma independiente de los demás.

El problema del reinicio tardío

A veces una tarea posterior necesita que el servicio ya se haya reiniciado. Esperar hasta el final del play es demasiado tarde, así que debe vaciar la cola antes.

Conozca flush_handlers

La tarea meta flush_handlers fuerza la ejecución inmediata de todos los handlers pendientes, en mitad del play.

- name: Run queued handlers now
  ansible.builtin.meta: flush_handlers

Es una tarea meta

flush_handlers es una acción especial de tipo meta que controla el propio Ansible en lugar de modificar el host remoto.

Un uso habitual

Cambie la configuración, vacíe la cola para que se reinicie el servicio y, después, ejecute una tarea de prueba de humo contra el servicio recién reiniciado.

- name: Update config
  ansible.builtin.template:
    src: app.j2
    dest: /etc/app.conf
  notify: Restart app
- ansible.builtin.meta: flush_handlers
- name: Check health
  ansible.builtin.uri:
    url: http://localhost/health

Fallos y handlers

Si un host falla antes del final del play, normalmente sus handlers pendientes no se ejecutan. Esta es una de las razones por las que vaciar la cola antes puede ser más seguro.

force_handlers como red de seguridad

Establezca force_handlers en true en un play para ejecutar los handlers en cola incluso cuando un host falle posteriormente. Resulta útil para reinicios de limpieza.

- hosts: web
  force_handlers: true
  tasks:
    - ...

Vacíe la cola con moderación

Use flush_handlers solo cuando el orden lo requiera realmente. Utilizarlo en exceso elimina el beneficio de agrupar que ofrecen los handlers.

La secuencia temporal

Las tareas se ejecutan de arriba abajo, los handlers esperan en una cola y, después, todos se activan al final del play, salvo que vacíe la cola antes. ⏱️

Comprobación rápida

Debe reiniciar un servicio en mitad del play para que una tarea posterior pueda acceder a él. ¿Qué utiliza?

Resumen

Los handlers normalmente se ejecutan una vez al final del play, por host. Use flush_handlers para activarlos antes y force_handlers para que se ejecuten incluso después de fallos. 🚀

Preguntas frecuentes

¿La lección «Cuándo se ejecutan los handlers y flush_handlers» es gratis?

Sí — el texto completo de «Cuándo se ejecutan los handlers y flush_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 «Cuándo se ejecutan los handlers y flush_handlers»?

Controle el momento de ejecución de los handlers al finalizar el play 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 3 de 4.

¿Cuánto tiempo toma la lección «Cuándo se ejecutan los handlers y flush_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