Verwendung von Ansible Vault in Playbooks zum Schutz sensibler Daten – Teil 10
Zum Glück bietet uns Ansible eine praktische Funktion, die als bekannt ist Ansible Vault. Wie der Name schon sagt, ist die Ansible Vault hilft 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, für das beim Ver- und Entschlüsseln von Dateien dasselbe Kennwort erforderlich ist.
Lassen Sie uns nun eintauchen und einen Überblick über die verschiedenen Operationen erhalten, die mit ausgeführt werden können Ansible Tresor.
So erstellen Sie eine verschlüsselte Datei in Ansible
Wenn Sie eine verschlüsselte erstellen möchten Spielbuch Datei verwenden Sie einfach die ansible-vault erstellen Befehl und geben Sie den Dateinamen wie gezeigt ein.
# ansible-vault create filename
Zum Beispiel, um eine verschlüsselte Datei zu erstellen mysecrets.yml Führen Sie den Befehl aus.
# ansible-vault create mysecrets.yml
Anschließend werden Sie aufgefordert, ein Kennwort einzugeben. Nach der Bestätigung wird mit dem vi-Editor ein neues Fenster geöffnet, in dem Sie mit dem Schreiben Ihrer Stücke beginnen können.
Nachfolgend finden Sie einige Beispiele. Sobald Sie fertig sind, speichern Sie einfach das Playbook und beenden Sie es. Und genau darum geht es beim Erstellen einer verschlüsselten Datei.
Verwenden Sie den Befehl cat wie gezeigt, um die Dateiverschlüsselung zu überprüfen.
# 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 die Ansible-Vault-Ansicht Befehl wie unten gezeigt.
# ansible-vault view mysecrets.yml
Sie werden erneut zur Eingabe eines Passworts aufgefordert. Sie haben wieder Zugriff auf Ihre Informationen.
So bearbeiten Sie eine verschlüsselte Datei in Ansible
Um Änderungen an einer verschlüsselten Datei vorzunehmen, verwenden Sie die Ansible-Vault bearbeiten Befehl wie gezeigt.
# ansible-vault edit mysecrets.yml
Geben Sie wie immer das Passwort ein und bearbeiten Sie anschließend die Datei.
Speichern und beenden Sie den vim-Editor, nachdem Sie die Bearbeitung abgeschlossen haben.
So ändern Sie das Ansible Vault-Passwort
Wenn Sie das Ansible-Tresorkennwort ändern müssen, können Sie dies ganz einfach mit dem Ansible-Vault-Rekey Befehl 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 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, indem Sie die Datei ausführen Ansible-Vault-Verschlüsselung Befehl wie gezeigt.
# ansible-vault encrypt classified.txt
Sie können die Datei später mit dem Befehl cat wie unten angegeben 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-Verschlüsselung wie im folgenden Beispiel dargestellt.
# ansible-vault decrypt classified.txt
So verschlüsseln Sie bestimmte Variablen in Ansible
Darüber hinaus können Sie mit Ansible Vault bestimmte Variablen verschlüsseln. Dies geschieht mit dem ansible-vault encrypt_string Befehl wie gezeigt.
# ansible-vault encrypt_string
Ansible Vault fordert Sie zur Eingabe des Kennworts 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. Zum Schluss drücken Sie ctrl + d
. Danach können Sie beginnen, den verschlüsselten Wert in einem Playbook zuzuweisen.
Dies kann in einer einzelnen Zeile erreicht werden, wie unten gezeigt.
# 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 --ask-vault-pass
Option wie abgebildet.
# ansible-playbook deploy.yml --ask-vault-pass
Dadurch werden alle im Playbook verwendeten Dateien entschlüsselt, sofern sie mit demselben Kennwort verschlüsselt wurden.
Die Passwortabfragen können manchmal ärgerlich sein. Diese Eingabeaufforderungen machen die Automatisierung unhaltbar, insbesondere wenn die Automatisierung der Schlüssel ist. Um das Entschlüsseln von Playbooks zur Laufzeit zu vereinfachen, wird empfohlen, eine separate Kennwortdatei zu verwenden, die das Ansible-Tresorkennwort enthält. Diese Datei kann dann zur Laufzeit wie gezeigt übergeben werden.
# ansible-playbook deploy.yml --vault-password-file /home/tecmint/vault_pass.txt
Dies bringt uns zum Abschluss dieses Themas und der Ansible-Automatisierungsserie. Wir hoffen, dass die Tutorials einige nützliche Kenntnisse darüber vermittelt haben, wie Sie Aufgaben auf mehreren Servern von einem zentralen System aus automatisieren können.