Ansible notificar quando alterado

Ansible notificar quando alterado
Em Ansible, um manipulador refere -se a uma tarefa específica que é executada quando desencadeada pelo módulo de notificação. Os manipuladores executam uma ação definida na tarefa quando uma alteração ocorre no host remoto.

Os manipuladores são úteis quando você precisa executar uma tarefa que depende do sucesso ou do fracasso de uma tarefa específica. Por exemplo, você pode definir um manipulador para enviar logs do Apache se o serviço cair.

Este artigo ajudará você a entender como definir e usar o manipulador Ansible em Playbooks.

Uso básico

Para ilustrar como usar o manipulador Ansible, vamos um exemplo simples. O manual abaixo instalará o servidor HTTP Apache e usará um manipulador para iniciar o serviço.

---
- Hosts: todos
tornar verdade
Gather_facts: Não
tarefas:
- Nome: "Instale Apache"
pacote:
Nome: Apache2
Estado: presente
notificar:
startapache
Manipuladores:
- Nome: StartApache
serviço:
Nome: Apache2
Estado: começou

No manual de exemplo acima, começamos instalando o servidor Apache2 usando o módulo de pacote. Em seguida, usamos um módulo de notificação para definir uma ação notificada.

A etapa final é configurar um manipulador para executar após a instalação do servidor. O nome da notificação deve ser o mesmo que o nome usado no módulo Handler. Caso contrário, o manipulador especificado falhará.

Salve e execute o manual acima:

Ansible-PlayBookHandlers.yml

Como configurar o manipulador de notificar Ansible para uma mensagem de alerta

Você também pode configurar um manipulador Ansible para exibir uma mensagem em vez de tomar ações, como reiniciar serviços.

Por exemplo, o manual abaixo reinicia o serviço Apache e exibe uma mensagem para o usuário.

---
- Hosts: todos
tornar verdade
tarefas:
- Nome: "reinicie o apache"
serviço:
Nome: Apache2
Estado: reiniciado
notificar:
apacherestart
Manipuladores:
- Nome: ApacheRestarted
depurar:
MSG: "O serviço Apache reiniciou com sucesso"

No exemplo acima, registramos um manipulador simples que mostra uma mensagem bem -sucedida quando o serviço Apache é reiniciado.

Abaixo está um exemplo de saída:

Tarefa [Reinicie o Apache]
************************
Alterado: [192.168.0.111]
Running Handler [Apache reiniciado]
************************************
OK: [192.168.0.111] =>
"msg": "O serviço Apache reiniciou com sucesso."

Como configurar o manipulador Ansible Notify para vários manipuladores

Suponha que você queira atualizar o sistema e reiniciar dois serviços após a atualização. Conforme mostrado no manual abaixo, você pode definir dois manipuladores para executar como ações:

---
- Hosts: todos
tornar verdade
tarefas:
- Nome: "Atualize o sistema"
APT:
update_cache: sim
Upgrade: Dist
notificar:
-apache
-mysql
Manipuladores:
- Nome: Apache
serviço:
Nome: Apache2
Estado: reiniciado
- Nome: MySQL
serviço:
Nome: MySqld
Estado: reiniciado

Neste exemplo de manual, atualizamos o sistema usando o módulo apt. Em seguida, usamos os módulos Notify para definir duas tarefas.

Usando manipuladores, definimos ações para cada tarefa notificada. Em nosso exemplo, reiniciamos os serviços Apache e MySQL.

Conclusão

Este tutorial mostrou como definir e usar o módulo Ansible Notify and Handlers para executar uma ação em que uma tarefa é concluída.