Warum konnten die verschlüsselten Ansible-Dateien nicht entschlüsselt werden, obwohl die Tresorkennwortdatei festgelegt wurde?


7

Follow-up zu diesen Fragen und Antworten .

Gemäß dieser und dieser Dokumentation sollte es möglich sein, eine Standard-Tresorkennwortdatei zu definieren, indem vault_password_file = ~/.vault_pass.txtin einer der folgenden Dateien angegeben wird:

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg

Obwohl die Kennwortdatei vorhanden ist und das Protokoll angibt, dass die Datei ansible.cfg verwendet wird, die die Definition enthält, schlägt die Entschlüsselung fehl:

user@host$
Using /etc/ansible/ansible.cfg as config file
ERROR! Decryption failed on /path/to/ansible/group_vars/production/vault

Diskussion

  • Ist der Pass für dieses Gewölbe korrekt?

Ja. Wenn ansible ausgeführt wird, ist --vault-password-file=~/.vault_pass.txtdie Entschlüsselung erfolgreich.

  • Nur damit wir klar sind - der Name der Umgebungsvariablen ist ANSIBLE_VAULT_PASSWORD_FILErichtig?

Nein. Wenn diese Variable verwendet wird, funktioniert sie, aber das Ziel ist es, sie durch Setzen in der ansible.cfg festzulegen /etc/ansible/ansible.cfg.

  • Welche Ansible-Version wird verwendet?

    user@host:/dir$ ansible --version
    ansible 2.2.2.0
        config file = /etc/ansible/ansible.cfg
        configured module search path = Default w/o overrides
    
  • Funktioniert die Verwendung eines vollständigen Pfads in der Konfiguration?

Die Entschlüsselung failes auch wenn der vollständige Pfad statt ~, dh /home/user/.vault_pass.txtangegeben wurde.


1
Nur damit wir klar sind - der Name der Umgebungsvariablen ist ANSIBLE_VAULT_PASSWORD_FILErichtig?
— 13dimitar

Und was ist die Ausgabe von echo $ANSIBLE_VAULT_PASSWORD_FILE?
— 13dimitar

es ist leer, weil ich versuche zu verwendenvault_password_file = ~/.vault_pass.txt
— 030

Variablennamen unterscheiden zwischen Groß- und Kleinschreibung
— 13dimitar

Dies wird in der ansible.cfg eingestellt. Ich verwende keine Umgebungsvariable
— 030

Antworten:


1

Es ist unklar , warum es gescheitert, aber Einstellung vault_password_file = ~/.vault_pass.txtin /etc/ansible/ansible.cfgausreichend.


1

Ich habe ein Problem mit Ansible / Python gefunden, bei dem die Entschlüsselung fehlgeschlagen ist.

Insbesondere würden Ansible 2.7.10 und 2.7.13 unter Python 3.6.8 unter Ubuntu 18.04 keine Tresordatei entschlüsseln (verwenden ansible-vault edit -vvvvv), die mit der Datei identisch ist, die unter macOS 10.13 mit Python 3.7.2 mit denselben Ansible-Versionen OK entschlüsselt wurde.

Ein Upgrade auf Python 3.7.3 unter Ubuntu (unter Verwendung apt-get install python3.7von 18.04) hat dies behoben.

Ihr Problem mag anders sein, aber wenn Sie Python 3.6 oder niedriger verwenden, würde ich versuchen, ein Upgrade auf 3.7 durchzuführen.


-1

Laut den Dokumenten ,

Sie können auch die Variable ANSIBLE_VAULT_PASSWORD_FILEenvironment festlegen, z. B. ANSIBLE_VAULT_PASSWORD_FILE = ~ / .vault_pass.txt. Ansible sucht automatisch nach dem Kennwort in dieser Datei.

Stellt sicher, dass Sie genau den gleichen Fall verwenden.


1
Sie lassen die Frage aus, es geht speziell um die Eigenschaft der Konfigurationsdatei, es wird wörtlich in der Frage angegeben, lesen Sie sie noch einmal sorgfältig durch
— Tensibai
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.