0Pricing
DevOps Bootcamp · Lección

Definir handlers y patrones de reinicio

Escriba handlers reutilizables para reiniciar servicios

Definir handlers y patrones de reinicio es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 2 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 DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

Dónde se encuentran los handlers

Los handlers se colocan en su propia sección handlers del play, separada de las tareas normales. Así las acciones reactivas quedan agrupadas con claridad.

tasks:
  - name: Deploy config
    ansible.builtin.template:
      src: app.conf.j2
      dest: /etc/app.conf
    notify: Restart app
handlers:
  - name: Restart app
    ansible.builtin.service:
      name: app
      state: restarted

Un handler es una tarea

Un handler utiliza exactamente la misma sintaxis que una tarea: un name y una llamada a un módulo. La única diferencia es que espera a recibir una notificación.

El nombre es el contrato

El name del handler es la cadena a la que hacen referencia otras tareas en su notify. Trátelo como una etiqueta estable y exacta que reutilizará.

Reiniciar con service

Un handler de reinicio clásico utiliza el módulo service con el estado establecido en restarted. Detiene e inicia la unidad en un solo paso.

- name: Restart nginx
  ansible.builtin.service:
    name: nginx
    state: restarted

Recargar frente a reiniciar

Prefiera reloaded cuando un servicio lo admita. Una recarga vuelve a leer la configuración sin interrumpir las conexiones, a diferencia de un reinicio completo.

- name: Reload nginx
  ansible.builtin.service:
    name: nginx
    state: reloaded

Use systemd directamente

El módulo systemd ofrece un control más preciso en hosts systemd, incluido daemon_reload después de cambiar un archivo de unidad.

- name: Restart app
  ansible.builtin.systemd:
    name: app
    state: restarted
    daemon_reload: true

Mantenga los handlers genéricos

Escriba un único handler reutilizable Reiniciar nginx y notifíquelo desde muchas tareas. Evite copiar la misma lógica de reinicio por todas partes.

Los handlers se ejecutan en el orden de definición

Cuando hay varios handlers en cola, se ejecutan en el orden en que se definieron, no en el orden en que recibieron la notificación. Planifique esa secuencia.

El orden importa para las dependencias

Si una recarga debe ocurrir antes que un reinicio, defínalos en ese orden en la lista de handlers para que la cola se procese correctamente.

Handlers en los roles

En un role, los handlers se encuentran en handlers/main.yml. Las tareas del role los notifican por nombre, exactamente igual que en un playbook normal.

Nombres para mayor claridad

Use nombres con formato de acción, como Reiniciar nginx o Recargar sshd. Los nombres claros hacen que la salida sea legible y que las líneas notify sean evidentes.

Comprobación rápida

Ha cambiado una configuración y quiere que el servicio en ejecución la adopte sin interrumpir las conexiones. ¿Qué estado es el más adecuado?

Resumen

Ahora puede definir handlers en la sección handlers, elegir entre reiniciar y recargar, y confiar en que se ejecuten en el orden de definición. 🎯

Preguntas frecuentes

¿La lección «Definir handlers y patrones de reinicio» es gratis?

Sí — el texto completo de «Definir handlers y patrones de reinicio» 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 DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «Definir handlers y patrones de reinicio»?

Escriba handlers reutilizables para reiniciar servicios Practicas DevOps Bootcamp 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 DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp 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 2 de 4.

¿Cuánto tiempo toma la lección «Definir handlers y patrones de reinicio»?

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 DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp 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 DevOps Bootcamp