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.

030
quelle
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.

030
quelle
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.

RichVel
quelle
-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.

Findarato
quelle
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