Para permitir que as verificações apareçam no Uchiwa quando um novo cliente sensu for adicionado, o sensu-server
e sensu-api
precisa ser reiniciado. No momento existem 5 clientes e um servidor. Sempre que um novo cliente sensu é adicionado usando o ansible, as verificações não aparecem no Uchiwa. No momento, preciso fazer login no sensu-server e reiniciar os serviços. Como automatizar isso usando ansible?
De acordo com esta documentação , existem manipuladores:
handlers:
- name: restart memcached
service: name=memcached state=restarted
listen: "restart web services"
- name: restart apache
service: name=apache state=restarted
listen: "restart web services"
que poderia ser chamado usando notify:
tasks:
- name: restart everything
command: echo "this task will restart the web services"
notify: "restart web services"
para que o serviço seja reiniciado se ocorrer uma alteração, por exemplo, na configuração, mas como notificar um serviço remoto, por exemplo, notificar o serviço no IP-B do IP-A?
(
listen
é um novo recurso 2.2 que não foi lançado até o momento, então não vou usá-lo)Uma notificação é como uma tarefa regular (mais ou menos), exceto que é acionada por um evento, então basicamente você poderia fazer algo assim, isso é meio feio (e inseguro porque a máquina deveria ter acesso ssh aos servidores remotos), mas Deveria trabalhar.
Mas o Ansible tem uma maneira mais elegante de lidar com isso
delegate_to
O que ele faz é que a tarefa do manipulador será executada no(s) servidor(es) que você delegou a tarefa. e, em seguida, conecte-se à sua tarefa, conforme informado na pergunta.