Übergeben Sie die Variable „ansible_failed_result“ an die Tower-Benachrichtigung

Übergeben Sie die Variable „ansible_failed_result“ an die Tower-Benachrichtigung

Ich versuche, eine Möglichkeit zu finden, die nativen Fehlervariablen und -benachrichtigungen von Ansible und Tower zu verwenden, um eine E-Mail mit dem Ergebnis der Ausführungsausgabe eines Jobs zu senden.

Ich habe also ein Playbook, das ungefähr Folgendes macht:

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

Das gibt mir eine schöne Ausgabe im Tower

Ich möchte jedoch auch in der Lage sein, dieselbe Ausgabe von Tower an eine E-Mail-Benachrichtigung weiterzuleiten, sodass ich die Ausgabe eines Auftrags in einer E-Mail sehen kann, ohne mich bei Tower anmelden zu müssen. Das bedeutet, dass ich anhand meiner E-Mail sofort weiß, ob es sich um ein Verbindungstimeout oder etwas Ernsteres handelt.

Ich habe versucht, die benutzerdefinierten Benachrichtigungen in Tower zu verwenden und habe das Feld „job.job_explanation“ ausprobiert, das Ergebnis ist jedoch immer leer.

Ich habe versucht, den Job mit erhöhter Ausführlichkeit auszuführen, aber das hat auch nicht funktioniert.

Irgendwelche Ideen, wie das geht? An diesem Punkt bin ich mir nicht sicher, ob ich mit dem Feld job_explanation überhaupt auf dem richtigen Weg bin, daher wäre ich für jede Hilfe sehr dankbar!

Danke

Antwort1

Falls jemand anderes über das gleiche Problem stolpert, hier ist, wie ich es ganz einfach gemacht habe

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

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

Sie können dann {{ job.artifacts }} im Nachrichtenabschnitt der Tower-Benachrichtigungen verwenden, um die von Ihnen festgelegte Variable zurückzugeben.

verwandte Informationen