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.