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