Pase la variable 'ansible_failed_result' a la notificación de la torre

Pase la variable 'ansible_failed_result' a la notificación de la torre

Estoy tratando de encontrar una manera de utilizar las variables y notificaciones nativas de falla de Ansible y Tower, respectivamente, para enviar un correo electrónico con el resultado de la ejecución de un trabajo.

Entonces tengo un libro de jugadas que hace algo como esto:

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

Lo que me da un buen resultado en Tower

Sin embargo, también me gustaría poder pasar ese mismo resultado de Tower a una notificación por correo electrónico para poder ver en un correo electrónico el resultado de un trabajo sin tener que iniciar sesión en Tower. Esto significa que sé por mi correo electrónico de inmediato si se trata de un tiempo de espera de conexión o algo más grave.

Intenté usar las notificaciones personalizadas en Tower y probé el campo 'job.job_explanation', sin embargo, siempre aparece vacío.

Intenté ejecutar el trabajo con mayor detalle, pero tampoco funcionó.

¿Alguna idea de cómo hacer esto? En este punto, no estoy seguro de estar en el camino correcto al utilizar el campo job_explanation, por lo que cualquier ayuda sería muy apreciada.

Gracias

Respuesta1

En caso de que alguien más se encuentre con el mismo problema, así es como lo hice de manera muy simple.

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

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

Luego puede usar {{ job.artifacts }} en la sección de mensajes de notificaciones de Tower para devolver la variable que configuró.

información relacionada