Start/News/Ansible AWX
PLATFORM · 8 Min. Lesezeit · Engineering-Notes

ANSIBLE AWX
ALS ZENTRALE
AUTOMATION-
PLATTFORM.

Achtzehn Monate AWX in Produktion — über mehrere Kunden hinweg. Multi-Tenant-Patterns, Secrets-Handling, Self-Service-Templates für Fachabteilungen ohne Ansible-Wissen. Was funktioniert hat, was nicht — und wann es eher Schaden anrichtet als hilft.

JOB TEMPLATE · DEPLOY SWITCH CONFIG SUCCEEDED [01] PLAY [Deploy switch config on all_switches] ******[02] TASK [base : ensure ntp configured] ****** ok[03] TASK [base : ensure snmp v3] ****** changed[04] TASK [monitoring : push telemetry config] **** ok[05] TASK [qos : apply class-maps] **** changed[06] TASK [qos : apply policy-maps] **** ok[07] PLAY RECAP ****** 8 ok · 2 changed · 0 unreachable · 0 failed DURATION 00:42 · 8 HOSTS · TRIGGERED VIA AWX UI Ein typischer AWX-Job. Acht Switches, drei Rollen, durchgelaufen in 42 Sekunden. Vorher waren das 30 Minuten manuelle Klick-Arbeit pro Switch.

Vorab: AWX (das Open-Source-Pendant zu Ansible Automation Platform / Tower) ist eines dieser Tools, die nach "müssen wir uns mal anschauen" klingen — und dann unauffällig zur wichtigsten Plattform im Operations-Stack werden. So ist es bei uns passiert.

01 WO WIR HERKOMMEN

Vor 18 Monaten lief jede Automation-Aufgabe bei uns aus einzelnen Ansible-Playbooks, die unsere Engineers von ihren Laptops gestartet haben. Das skaliert genau so lange, bis (a) jemand mit der falschen Inventory-Datei startet, (b) Secrets in Klartext rumliegen, (c) niemand mehr weiß, was wann gegen welche Umgebung gelaufen ist.

Wir hatten alle drei Punkte erlebt.

02 SETUP

Eine zentrale AWX-Instanz, deployed in unserem OpenShift-Cluster, mit folgenden Eigenschaften:

  • Organizations als oberste Trennung — eine pro Kunde plus eine für EGW-intern.
  • Teams innerhalb der Organizations — getrennte Rollen für Netzwerk, Server, Security.
  • Inventories dynamisch aus unserer NetBox-Instanz gezogen — keine handgepflegten Listen mehr.
  • Credentials kommen aus HashiCorp Vault — AWX selber speichert keine Klartext-Secrets.
  • Project-Updates über Webhooks aus Git — neue Playbook-Versionen sind sofort verfügbar.

03 MULTI-TENANT-PATTERNS

Mandantentrennung ist bei AWX vor allem eine Frage der Organization- und Team-Konfiguration. Wir haben gelernt, dass es lohnt, hier konservativ zu sein:

  • Keine Cross-Org-Inventories. Wenn ein Engineer Zugriff auf Kunde A und Kunde B braucht, ist er Mitglied beider Orgs.
  • Eigene Execution-Environments pro Kunde, wenn die Ansible-Collections kritisch divergieren.
  • Audit-Logging zentral nach Loki + Grafana — wer hat wann gegen welches Ziel was gestartet.

04 SELF-SERVICE FÜR FACHABTEILUNGEN

Das war der unerwartete Win: AWX-Surveys (das eingebaute Formular-System) erlauben es, Standardisierte Aufgaben für Nicht-Engineers verfügbar zu machen. Beispiel: ein Admin in der Buchhaltung kann selber ein Ad-hoc-Reporting-Skript gegen die Datenbank starten, ohne Ticket. Das Skript läuft aber unter unseren Credentials, mit unseren Berechtigungen, mit unserem Audit-Trail.

05 WAS WIR GELERNT HABEN

  • AWX-Upgrades sind nicht trivial, vor allem zwischen Major-Versionen. Snapshot der Postgres-DB vor jedem Upgrade, immer.
  • Sync-Performance degradiert ab ein paar tausend Hosts spürbar. Wir splitten dann in mehrere AWX-Instanzen.
  • Workflow-Jobs sind unterschätzt — Sie können komplexe Multi-Step-Operationen orchestrieren, ohne den Playbook-Code aufzublähen.
  • Templates als API: Wir rufen AWX-Jobs auch aus anderen Tools (Service-Now, Jira) per REST-API auf. AWX wird so zur Automation-Engine, nicht nur zum UI.

Sprechen Sie mit uns, wenn Sie eine Automation-Plattform brauchen — Kontakt-Seite oder +43 (0)1 235 1277.