Skip to content

AWX Backup und Restore mit dem AWX CLI

Mit dem AWX Command Line Interface (ehemals Tower CLI), ist es einfach möglich alle Konfigurationen aus AWX (und auch dem offiziellen Ansible Tower) zu exportieren und wieder zu importieren. Ich nutze diese Funktion als Backup meiner AWX Konfiguration.

Das AWX CLI bietet viele Möglichkeiten mit AWX oder dem Ansible Tower zu interagieren. Eine umfassende Dokumentation findet sich hier. Die Funktion des Exports und Imports schauen wir uns hier an.

Zunächst installieren wir das AWX CLI über den Python Paketmanager PIP.

pip3 install awxkit

Nun müssen wir die Konfiguration zu unserer AWX Umgebung konfigurieren. Hierfür gibt es mehrere Möglichkeiten. Ich nutze hierzu Umgebungsvariablen.

export TOWER_HOST=http://192.168.88.12
export TOWER_USERNAME=admin
export TOWER_PASSWORD=supersecret

Wenn alle Angaben korrekt sind, können wir nun über die CLI mit unserem AWX interagieren. Eine kurze Kontrolle kann z.B. über awx jobs list erfolgen.

Nun wären wir bereit einen Export unserer Konfiguration, Jobs, etc. durchzuführen. Hier können einzelne “Kategorien” exportiert werden oder alle vorhandenen Einstellungen.

awx export --help
...
resources:
  --users [USERS]
  --organizations [ORGANIZATIONS]
  --teams [TEAMS]
  --credential_types [CREDENTIAL_TYPES]
  --credentials [CREDENTIALS]
  --notification_templates [NOTIFICATION_TEMPLATES]
  --projects [PROJECTS]
  --inventory [INVENTORY]
  --inventory_sources [INVENTORY_SOURCES]
  --job_templates [JOB_TEMPLATES]
  --workflow_job_templates [WORKFLOW_JOB_TEMPLATES]
  --execution_environments [EXECUTION_ENVIRONMENTS]

Es empfiehlt sich, hier möglichst “kleingliedrig” vorzugehen, da ein Import diese Unterteilung nicht bietet. Hier kann nur alles aus einem exportierten Konfigurationsstand importiert werden. Natürlich ist es auch möglich, die exportierte JSON Datei nach einem Export zu editieren. Ein vollständiger Export in eine Datei namens awx_backup.json kann so durchgeführt werden.

awx export -f json > awx_backup.json

Ein späterer Import kann mit der JSON Datei dann folgendermaßen erfolgen.

awx import < awx_backup.json

Ein Import kann durchaus einige Minuten in Anspruch nehmen. Wichtig zu wissen ist, dass keine Passwörter für eventuell hinterlegte Credentials oder Benutzer importiert werden. Diese gilt es wieder neu zu setzen!

Philip

Leave a Reply

Your email address will not be published. Required fields are marked *