Ansible notificar cuando se cambia

Ansible notificar cuando se cambia
En Ansible, un controlador se refiere a una tarea particular que se ejecuta cuando se activa por el módulo de notificación. Los manejadores realizan una acción definida en la tarea cuando ocurre un cambio en el host remoto.

Los manejadores son útiles cuando necesita realizar una tarea que se basa en el éxito o el fracaso de una tarea específica. Por ejemplo, puede configurar un controlador para enviar registros de Apache si el servicio se cae.

Este artículo lo ayudará a comprender cómo definir y usar el controlador Ansible en los libros de jugadas.

Uso básico

Para ilustrar cómo usar el controlador Ansible, déjenos un ejemplo simple. El libro de jugadas a continuación instalará el servidor Apache HTTP y usará un controlador para iniciar el servicio.

---
- Anfitriones: todos
hecho realidad
gateo_facts: no
tareas:
- Nombre: "Instalar Apache"
paquete:
Nombre: Apache2
Estado: presente
notificar:
startapache
manejadores:
- Nombre: startapache
servicio:
Nombre: Apache2
Estado: comenzó

En el libro de jugadas de ejemplo anterior, comenzamos instalando el servidor Apache2 usando el módulo de paquete. Luego usamos un módulo de notificación para establecer una acción de notificación.

El paso final es configurar un controlador para ejecutar después de instalar el servidor. El nombre de la notificación debe ser el mismo que el nombre utilizado en el módulo de controlador. De lo contrario, el controlador especificado fallará.

Guarde y ejecute el libro de jugadas anterior:

Ansible-playbookhandlers.YML

Cómo configurar el controlador de notificación ansible para el mensaje de alerta

También puede configurar un controlador Ansible para mostrar un mensaje en lugar de tomar acciones como reiniciar servicios.

Por ejemplo, el siguiente libro de jugadas reinicia el servicio Apache y muestra un mensaje al usuario.

---
- Anfitriones: todos
hecho realidad
tareas:
- Nombre: "Reiniciar Apache"
servicio:
Nombre: Apache2
Estado: reiniciado
notificar:
apacherestarted
manejadores:
- Nombre: Apacherestarted
depurar:
MSG: "El servicio Apache se reinició correctamente"

En el ejemplo anterior, registramos un controlador simple que muestra un mensaje exitoso cuando se reinicia el servicio Apache.

A continuación se muestra una salida de ejemplo:

Tarea [Reiniciar Apache]
************************
Cambiado: [192.168.0.111]
Handler de ejecución [Apache reiniciado]
**************************************
OK: [192.168.0.111] =>
"Msg": "El servicio Apache se reinició correctamente."

Cómo configurar Ansible Notify Handler para múltiples manejadores

Supongamos que desea actualizar el sistema y reiniciar dos servicios después de la actualización. Como se muestra en el libro de jugadas a continuación, puede definir dos manejadores para realizar como acciones:

---
- Anfitriones: todos
hecho realidad
tareas:
- Nombre: "Actualizar el sistema"
apto:
update_cache: sí
Actualización: DIST
notificar:
-apache
-mysql
manejadores:
- Nombre: Apache
servicio:
Nombre: Apache2
Estado: reiniciado
- Nombre: mysql
servicio:
Nombre: mysqld
Estado: reiniciado

En este libro de jugadas de ejemplo, actualizamos el sistema utilizando el módulo APT. A continuación, usamos los módulos de notificación para definir dos tareas.

Usando manejadores, definimos acciones para cada tarea de notificación. En nuestro ejemplo, reiniciamos los servicios de Apache y MySQL.

Conclusión

Este tutorial le ha mostrado cómo definir y usar el módulo Ansible Notify y Handlers para realizar una acción donde se completa una tarea.