Ansible – Notificação BOT Telegram

Olá Pessoal,

   Seguindo nossa sequência sobre Ansible, hoje gostaria de trazer um adendo que estaria envolvido simplesmente em criar uma notificação que poderá ser exibida no Telegram, através de nossos famosos e tão comentado BOTs.

   Para que todo esse processo funcione, você terá a necessidade de criar um BOT simples pelo Telegram, para isso você pode interagir com nosso amigo @BotFather. Se necessitar de mais informações sobre os procedimentos para criação desse BOT, recomendo que pesquise nesse link, na pagina do Telegram.

   Em nossos testes eu criei meu BOT e vou utiliza-lo para fazer as notificações para uma sala de teste, no intuito de inserir meu BOT para visualizar as notificações.

   Seguindo com nossas configurações, irei utilizar o mesmo exemplo que já estamos trabalhando, porém vou agregar mais um arquivo no projeto, denominado como telegram.yaml

---
  - name: Send test message
    telegram:
        token: bot000:xxxx
        chat_id: -yyyy
        msg: Ansible playbook executed

   Como podem observar eu omiti algumas informações de nosso exemplo devido a ser referenciado ao meu token e ID de BOT, portanto a partir de seu BOT essas informações vocês devem alterar olhando especificamente em seu BOT.

   Um dos motivos mais difíceis para conseguir funcionar essa notificação através do BOT, foi conseguir adquirir esse chat_id, que com exclusividade vou detalhar um pouco de que forma facilitar sua vida.

   Como exemplo o nome do BOT seria rodrigo_bot

  1. Você deve inserir seu BOT em um grupo 
  2. Você precisa enviar uma mensagem em seu grupo para seu BOT
    1. Neste caso você deve fazer /my_id @rodrigo_bot ( Eu tentei diversas mensagens, mas a única que trouxe a informação foi utilizando /my_id )
  3. Em seu browser você deve colocar https://api.telegram.org/botXXX:YYYY/getUpdates ( lembre-se de trocar as variáveis citadas pelo token de seu BOT )
  4. Após a resposta você deve procurar pelo campo ,“chat”:{“id”:-xxxxxx
  5. BINGO!!!!  😆 

   Enfim, agora você pode utilizar as informações para preencher em seu arquivo do Ansible ( telegram.yaml ). Se quiser fazer um teste antes para validar sobre o chat-id o telegram aceita notificação via CURL. Esse comando é aceito no Linux ( curl -X POST “https://api.telegram.org/botxxx:yyyyy/sendMessage” -d “chat_id=-wwwww&text=my sample text” ), lembrando-se que para funcionar você precisa anexar suas informações de token e chat_id.

   Para que possamos finalizar eu chamei através de nosso arquivo principal ( backup_router.yaml ) nossa notificação na sala de bate papo.

---
- name: Configuration Backup in Cisco Devices
  hosts: routers
  gather_facts: no
  connection: local

  tasks:
  - name: OBTAIN LOGIN CREDENTIALS
    include_vars: secret.yaml

  - name: Define access
    set_fact:
      provider:
        host: "{{ ansible_host }}"
        username: "{{ creds['username'] }}"
        password: "{{ creds['password'] }}"
        auth_pass: "{{ creds['auth_pass'] }}"

  - name: Obtain commands
    include: commands_variance.yaml

  - name: Obtain Telegram
    include: telegram.yaml

   Segue a execução de nossa playbook. Nesse caso chamei duas mensagens para popular mais opções para você.

   Após a execução podemos consultar em nossa sala de bate papo nossa mensagem populada.

   Espero que tenham gostado e nossa próxima integração será através de outra ferramenta de messaging. Aguardem!!!

Abs,
Rodrigo

0
0

Link permanente para este artigo: https://ciscoredes.com.br/2017/09/04/ansible-notificacao-bot-telegram/

Deixe um comentário

Seu e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Translate