Passe a variável 'ansible_failed_result' para Tower Notification

Passe a variável 'ansible_failed_result' para Tower Notification

Estou tentando encontrar uma maneira de usar as variáveis ​​​​e notificações de falha nativas do Ansible e Tower, respectivamente, para enviar um email com o resultado da saída de execução de um trabalho.

Então, eu tenho um manual que faz algo assim:

  rescue:
    - debug:
        msg: "Failure:\n\n{{ansible_failed_result | to_nice_json}}"

O que me dá uma boa saída no Tower

No entanto, também gostaria de poder passar a mesma saída do Tower para uma notificação por e-mail, para poder ver em um e-mail a saída de um trabalho sem precisar fazer login no Tower. Isso significa que eu sei imediatamente pelo meu e-mail se é um tempo limite de conexão ou algo mais sério.

Tentei usar as notificações personalizadas no Tower e tentei o campo 'job.job_explanation', porém sempre retorna vazio.

Tentei executar o trabalho com maior verbosidade, mas também não funcionou.

Alguma idéia de como fazer isso? Neste ponto, não tenho certeza se estou no caminho certo usando o campo job_explanation, então qualquer ajuda seria muito apreciada!

Obrigado

Responder1

Caso alguém se depare com o mesmo problema, veja como fiz isso de maneira muito simples

  tasks:
    - block:
        - name: Fail Task
          fail:
            msg: 'Failed'
          when: true

      rescue:
      - name: set stats
        set_stats:
           data:
             msg_body_1: "This was a test"

Você pode então usar {{ job.artifacts }} na seção de mensagens de notificações do Tower para retornar a variável que você definiu.

informação relacionada