Website-Suche

So verwenden Sie Ansible Vault in Playbooks zum Schutz sensibler Daten – Teil 10


Während Sie Ansible verwenden, müssen Sie möglicherweise vertrauliche oder geheime Informationen in Playbooks eingeben. Dazu gehören private und öffentliche SSH-Schlüssel, Passwörter und SSL-Zertifikate, um nur einige zu nennen. Wie wir bereits wissen, ist es aus offensichtlichen Gründen eine schlechte Praxis, diese sensiblen Informationen im Klartext zu speichern. Diese Informationen müssen unter Verschluss gehalten werden, da wir uns nur vorstellen können, was passieren würde, wenn Hacker oder unbefugte Benutzer an sie gelangen würden.

Zum Glück stellt uns Ansible eine praktische Funktion namens Ansible Vault zur Verfügung. Wie der Name schon sagt, hilft der Ansible Vault dabei, wichtige geheime Informationen zu sichern, wie wir bereits besprochen haben. Ansible Vault kann Variablen oder sogar ganze Dateien und YAML-Playbooks verschlüsseln, wie wir später zeigen werden. Es ist ein sehr praktisches und benutzerfreundliches Tool, das beim Verschlüsseln und Entschlüsseln von Dateien dasselbe Passwort erfordert.

Lassen Sie uns nun eintauchen und uns einen Überblick über die verschiedenen Vorgänge verschaffen, die mit Ansible Vault ausgeführt werden können.

So erstellen Sie eine verschlüsselte Datei in Ansible

Wenn Sie eine verschlüsselte Playbook-Datei erstellen möchten, verwenden Sie einfach den Befehl ansible-vault create und geben Sie den Dateinamen wie gezeigt an.

ansible-vault create filename

Um beispielsweise eine verschlüsselte Datei mysecrets.yml zu erstellen, führen Sie den Befehl aus.

ansible-vault create mysecrets.yml

Anschließend werden Sie nach einem Passwort gefragt und nach der Bestätigung öffnet sich ein neues Fenster mit dem vi-Editor, in dem Sie mit dem Schreiben Ihrer Stücke beginnen können.

Nachfolgend finden Sie eine Auswahl einiger Informationen. Sobald Sie fertig sind, speichern Sie einfach das Playbook und verlassen Sie es. Und das ist es auch schon, wenn Sie eine verschlüsselte Datei erstellen.

Um die Dateiverschlüsselung zu überprüfen, verwenden Sie den Befehl cat wie gezeigt.

cat mysecrets.yml

So zeigen Sie eine verschlüsselte Datei in Ansible an

Wenn Sie eine verschlüsselte Datei anzeigen möchten, übergeben Sie einfach den Befehl ansible-vault view wie unten gezeigt.

ansible-vault view mysecrets.yml

Sie werden erneut zur Eingabe eines Passworts aufgefordert. Sie haben erneut Zugriff auf Ihre Informationen.

So bearbeiten Sie eine verschlüsselte Datei in Ansible

Um Änderungen an einer verschlüsselten Datei vorzunehmen, verwenden Sie wie gezeigt den Befehl ansible-vault edit.

ansible-vault edit mysecrets.yml

Geben Sie wie immer das Passwort ein und fahren Sie anschließend mit der Bearbeitung der Datei fort.

Nachdem Sie mit der Bearbeitung fertig sind, speichern Sie den VIM-Editor und beenden Sie ihn.

So ändern Sie das Ansible Vault-Passwort

Falls Sie das Ansible-Vault-Passwort ändern müssen, können Sie dies ganz einfach mit dem Befehl ansible-vault rekey tun, wie unten gezeigt.

ansible-vault rekey mysecrets.yml

Dadurch werden Sie zur Eingabe des Tresorkennworts aufgefordert und später aufgefordert, das neue Kennwort einzugeben und es später zu bestätigen.

So verschlüsseln Sie eine unverschlüsselte Datei in Ansible

Angenommen, Sie möchten eine unverschlüsselte Datei verschlüsseln, können Sie dies tun, indem Sie den Befehl ansible-vault encrypt wie gezeigt ausführen.

ansible-vault encrypt classified.txt

Sie können die Datei später wie unten angegeben mit dem Befehl cat anzeigen.

So entschlüsseln Sie eine verschlüsselte Datei

Um den Inhalt einer verschlüsselten Datei anzuzeigen, entschlüsseln Sie die Datei einfach mit ansible-vault encrypt, wie im folgenden Beispiel dargestellt.

ansible-vault decrypt classified.txt

So verschlüsseln Sie bestimmte Variablen in Ansible

Darüber hinaus bietet Ihnen Ansible Vault die Möglichkeit, bestimmte Variablen zu verschlüsseln. Dies erfolgt wie gezeigt mit dem Befehl ansible-vault encrypt_string.

ansible-vault encrypt_string 

Ansible Vault fordert Sie zur Eingabe des Passworts auf und fordert Sie später auf, es zu bestätigen. Geben Sie als Nächstes den Zeichenfolgenwert ein, den Sie verschlüsseln möchten. Drücken Sie abschließend Strg + D. Anschließend können Sie mit der Zuweisung des verschlüsselten Werts in einem Playbook beginnen.

Dies kann wie unten gezeigt in einer einzigen Zeile erreicht werden.

ansible-vault encrypt_string 'string' --name 'variable_name'

So entschlüsseln Sie eine Playbook-Datei zur Laufzeit

Wenn Sie eine Playbook-Datei haben und diese zur Laufzeit entschlüsseln möchten, verwenden Sie die Option --ask-vault-pass wie abgebildet.

ansible-playbook deploy.yml --ask-vault-pass

Dadurch werden alle im Playbook verwendeten Dateien entschlüsselt, sofern sie mit demselben Passwort verschlüsselt wurden.

Die Passwortabfrage kann manchmal nervig sein. Diese Aufforderungen machen die Automatisierung unhaltbar, insbesondere wenn die Automatisierung von entscheidender Bedeutung ist. Um den Prozess der Entschlüsselung von Playbooks während der Laufzeit zu optimieren, wird empfohlen, eine separate Passwortdatei zu haben, die das Ansible-Vault-Passwort enthält. Diese Datei kann dann wie gezeigt zur Laufzeit übergeben werden.

ansible-playbook deploy.yml --vault-password-file  /home/tecmint/vault_pass.txt

Damit sind wir am Ende dieses Themas und der Ansible-Automatisierungsserie angelangt. Wir hoffen, dass Ihnen die Tutorials nützliche Erkenntnisse darüber vermittelt haben, wie Sie Aufgaben auf mehreren Servern von einem zentralen System aus automatisieren können.