pixel
Seite wählen

Ansible – AWX|Tower State handling on Workflows

von | Apr 27, 2021 | NETWAYS, Icinga, Python, Ansible

The Ansible Tower or its upstream AWX provides an easy to use GUI to handle Ansible tasks and schedules. Playbooks are configured as templates and as the name suggests, they can be modified to the needs, extended by variables, a survey or tags.

Furthermore those templates can be logically grouped, connected and visualised in Workflows.

The downside to those Workflows, all playbooks affected by this are executed separately and can’t access each others variables. On first glance we maybe only spot that we can define variables for the whole workflow but those are not changeable throughout the flow.

But there is a solution, which is the module set_stats. This module allows to save or accumulate variables and make them available for other playbooks within the workflow.

As an example we could use the monitoring environment when setting downtimes.

workflow

As a downtime is created before a maintenance and should be gone when the maintenance is done. This creates a dependency on the first task, which can be solved as we save the result of the first tasks with the set_stats module.


      - name: schedule downtimes
        icinga2_downtimes:
          state: "{{ downtime_icinga_state | default('present') }}"
          host: ***
          author: "{{ icinga2_downtimes_author | default('ansible_downtime') }}"
          comment: "{{ icinga2_downtimes_comment | default('Downtime scheduled by Ansible') }}"
          duration: "{{ icinga2_downtimes_duration | default(omit) }}"
        register: content
 
      - set_stats:
          data:
            downtime: "{{ content }}"

The content of the data will be now available to all playbooks included by the workflow. The variable is also shown as artefacts in the GUI.

artefacts

Keep in mind that the variable will be part of the extra variables for all other playbooks. As covered in the variable precedence it will overwrite any other variable named the same.

With this module you can reorganise your playbooks and connect them in workflows. This allows you to have a more flexible automation than before.

Check out our Blog for more awesome posts and if you need help with Ansible send us a message or sign up for one of our trainings!

Thilo Wening
Thilo Wening
Senior Consultant

Thilo hat bei NETWAYS mit der Ausbildung zum Fachinformatiker, Schwerpunkt Systemadministration begonnen und unterstützt nun nach erfolgreich bestandener Prüfung tatkräftig die Kollegen im Consulting. In seiner Freizeit ist er athletisch in der Senkrechten unterwegs und stählt seine Muskeln beim Bouldern. Als richtiger Profi macht er das natürlich am liebsten in der Natur und geht nur noch in Ausnahmefällen in die Kletterhalle.
Mehr Beiträge zum Thema NETWAYS | Icinga | Python | Ansible

NETWAYS stellt sich vor – Markus Opolka

  Name: Markus Opolka Alter: 34 Position bei NETWAYS: Consultant Bei NETWAYS seit: August 2022       Wie bist du zu NETWAYS gekommen und was genau gehört zu Deinem Aufgabenbereich? Ich wusste schon früh in meiner Berufslaufbahn, dass ich gern mit...

Internationale Feste | Wir feiern das ganze Jahr!

Advent, Advent, ein Lichtlein brennt... 🕯 Wir sind in Weihnachts- und Feiertagsstimmung! Aber genau genommen wird bei uns das ganze Jahr über gefeiert. Wir haben einige unserer internationalen Kollegen gefragt, welcher Feiertag in ihrem Heimatland am größten gefeiert...

Prometheus Webinare in 2023

Letzte Woche haben wir im Rahmen unserer Webinare auf YouTube einen groben Überblick über die Lösung Prometheus gegeben - das Video kann man sich hier ansehen, sofern man den Termin verpasst hat. Um neben unserer Beratungsdienstleistung das Thema Prometheus weiter...