Die Verwaltung von sensible Daten in Automatisierungs-Workflows stellt viele DevOps-Teams vor Herausforderungen. Besonders kritisch wird es, wenn Playbooks oder Variablendateien in Git-Repositories landen – denn dann sind Passwörter, API-Schlüssel und Tokens für jeden mit Repository-Zugriff sichtbar. Genau dieses Problem hatte auch Sireesha zu Beginn ihrer Ansible-Reise. Statt jedoch Kompromisse bei der Sicherheit einzugehen, lernte sie Ansible Vault kennen – ein eingebautes Tool, das sensible Daten verschlüsselt und so die sichere Nutzung von Playbooks und Variablen in Umgebungen wie AWX ermöglicht.
Warum Ansible Vault unverzichtbar ist für sichere Automatisierung
Ansible Vault ist kein separates Tool, sondern eine integrierte Funktion innerhalb des Ansible-Ökosystems. Mit ihr lassen sich vertrauliche Informationen – etwa Datenbankpasswörter, sudo-Passwörter oder Authentifizierungstokens – verschlüsseln, ohne die Struktur der Playbooks zu verändern. Die verschlüsselten Daten werden direkt in YAML-Dateien eingebettet und bleiben so für menschliche Leser unlesbar. Gleichzeitig ermöglicht Ansible Vault die automatische Entschlüsselung während der Ausführung von Playbooks, sobald der richtige Schlüssel bereitgestellt wird.
Der größte Vorteil: Sensible Daten müssen nie unverschlüsselt in Repositories oder auf Servern gespeichert werden. Selbst wenn ein Playbook oder eine Variablendatei versehentlich in ein öffentliches Repository hochgeladen wird, bleiben die Inhalte geschützt. Ansible Vault nutzt dabei die AES-256-Verschlüsselung – einen Industriestandard, der als hochsicher gilt. Die einzige Schwachstelle liegt in der Verwaltung des Vault-Passworts, das zur Entschlüsselung benötigt wird.
So verschlüsseln Sie sensible Variablen – Schritt für Schritt
Bevor Sireesha Ansible Vault einsetzte, speicherte sie Passwörter und Tokens direkt in Klartext in Variablendateien:
# vars/main.yml (unverschlüsselt)
ubuntu_sudo_password: MeinPasswort123
db_password: SuperGeheim456
api_token: abcd1234efgh5678Diese Datei wurde ohne weitere Schutzmaßnahmen in GitLab gepusht – ein klares Sicherheitsrisiko. Mit Ansible Vault lässt sich dieses Problem elegant lösen. Eine der einfachsten Methoden ist die Verschlüsselung einzelner Variablen mit dem Befehl:
ansible-vault encrypt_string 'MeinPasswort123' --name 'ubuntu_sudo_password'Nach der Eingabe eines Master-Passworts (das zur späteren Entschlüsselung benötigt wird) generiert das Tool einen verschlüsselten String:
ubuntu_sudo_password: !vault | $ANSIBLE_VAULT;1.1;AES256
6638643965323633646262656665333738623539613862393436316162336466
3834623437333132386566396634343732623537396131643562336566386661Dieser Block wird einfach in die bestehende Variablendatei kopiert. Das Ergebnis:
# vars/main.yml (verschlüsselt)
ubuntu_sudo_password: !vault | $ANSIBLE_VAULT;1.1;AES256
6638643965323633646262656665333738623539613862393436316162336466
db_password: !vault | $ANSIBLE_VAULT;1.1;AES256
...Die Datei kann nun problemlos in Git-Repositories gepusht werden – ohne dass sensible Daten preisgegeben werden.
Falls viele Variablen verschlüsselt werden müssen, bietet Ansible Vault auch die Verschlüsselung ganzer Dateien an:
ansible-vault encrypt vars/secrets.ymlZum Bearbeiten der Datei nutzen Sie:
ansible-vault edit vars/secrets.ymlAchtung: Eine dauerhafte Entschlüsselung sollte nur in Ausnahmefällen erfolgen:
ansible-vault decrypt vars/secrets.ymlAutomatisierte Ausführung: Ansible Vault in AWX integrieren
Die manuelle Eingabe des Vault-Passworts bei jedem Playbook-Start ist für lokale Tests akzeptabel – doch in automatisierten Umgebungen wie AWX stößt dieses Vorgehen an Grenzen. AWX führt Playbooks nach Zeitplänen oder als Teil von Workflows aus, ohne manuelle Eingriffe zuzulassen. Hier scheitert die klassische Methode mit --ask-vault-pass:
ansible-playbook patch.yml -i inventory/hosts.yml --ask-vault-passStattdessen muss das Vault-Passwort als AWX-Credential hinterlegt werden. So funktioniert die Integration:
- Vault-Credential in AWX anlegen
- Navigieren Sie zu Credentials → Add in der AWX-Oberfläche.
- Wählen Sie als Credential-Typ die Option „Ansible Vault“.
- Geben Sie das Vault-Passwort ein und speichern Sie die Credential.
- Vault-Credential mit Job-Templates verknüpfen
- Öffnen Sie das gewünschte Job-Template in AWX.
- Fügen Sie unter Credentials sowohl die Machine-Credential (für SSH-Zugriff) als auch die Vault-Credential hinzu.
- Speichern Sie die Änderungen.
Ab diesem Zeitpunkt kann AWX Playbooks automatisch ausführen, ohne dass jemand manuell das Vault-Passwort eingeben muss. Die Entschlüsselung erfolgt im Hintergrund – ein entscheidender Schritt für CI/CD-Pipelines, geplante Jobs oder komplexe Workflows.
Ein praktisches Beispiel: Patch-Workflow mit verschlüsselten Daten
Stellen Sie sich einen typischen Patch-Workflow vor, der wöchentlich Server aktualisiert. Ein Playbook wie pre_patch_check.yml benötigt Zugriff auf sensible Daten:
# vars/secrets.yml (verschlüsselt mit Ansible Vault)
ubuntu_sudo_password: !vault | $ANSIBLE_VAULT;1.1;AES256
...
db_connection_string: !vault | $ANSIBLE_VAULT;1.1;AES256Das Playbook prüft den Systemstatus, bevor Patches angewendet werden:
---
- name: Pre-Patch-Prüfungen
hosts: all
vars_files:
- vars/secrets.yml
tasks:
- name: Anwendungsstatus abfragen
ansible.builtin.uri:
url: " inventory_hostname }}/health"
headers:
Authorization: "Bearer {{ api_token }}"
register: health_checkLokal wird das Playbook mit dem Vault-Passwort gestartet:
ansible-playbook pre_patch_check.yml -i inventory/hosts.yml --ask-vault-passIn AWX hingegen läuft der gesamte Prozess vollständig automatisiert, sobald die Vault-Credential mit dem Job-Template verknüpft ist. Selbst wenn der Job um 2 Uhr nachts geplant ist, erfolgt die Entschlüsselung nahtlos – ohne manuelle Eingriffe oder Sicherheitslücken.
Fazit: Ansible Vault als Grundpfeiler moderner DevOps-Sicherheit
Geheimnisse wie Passwörter oder API-Tokens gehören nicht in Klartext in Automatisierungstools oder Versionskontrollsysteme. Mit Ansible Vault lassen sich diese Daten verschlüsseln, ohne die Funktionalität von Playbooks einzuschränken. Die Integration in AWX oder ähnliche Automatisierungsplattformen stellt sicher, dass sensible Informationen auch in komplexen Workflows geschützt bleiben.
Wer Ansible Vault von Anfang an einsetzt, spart sich nicht nur Sicherheitsrisiken, sondern auch den Aufwand nachträglicher Nachbesserungen. Die Lernkurve ist gering, der Nutzen jedoch enorm – besonders in Umgebungen, in denen Automatisierung und Sicherheit Hand in Hand gehen müssen. Für DevOps-Teams, die ihre Playbooks professionell und sicher gestalten möchten, ist Ansible Vault ein Must-Have-Tool.
KI-Zusammenfassung
Learn to encrypt sensitive data in Ansible with Vault. Discover how to integrate AWX for automated secrets management without manual password entry.