Por que os arquivos Ansible criptografados não podem ser descriptografados, embora o arquivo de senha do cofre tenha sido definido?

7

Acompanhamento das perguntas e respostas .

De acordo com esta e esta documentação, deve ser possível definir um arquivo de senha de cofre padrão especificando vault_password_file = ~/.vault_pass.txtum dos seguintes arquivos:

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

Embora o arquivo de senha exista e o log indique que o ansible.cfg é usado que contém a definição, a descriptografia falha:

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

Discussão

  • O passe está correto para este cofre?

Sim. Quando ansible é executado, --vault-password-file=~/.vault_pass.txta descriptografia é bem-sucedida.

  • Apenas para que fiquemos claros - o nome da variável de ambiente é ANSIBLE_VAULT_PASSWORD_FILEcorreto?

Não. Quando essa variável é usada, ela funciona, mas o objetivo é configurá-la no ansible.cfg configurando /etc/ansible/ansible.cfg.

  • Qual versão Ansible é usada?

    user@host:/dir$ ansible --version
    ansible 2.2.2.0
        config file = /etc/ansible/ansible.cfg
        configured module search path = Default w/o overrides
    
  • O uso de um caminho completo na configuração funciona?

A descriptografia falha também quando o caminho completo, em vez de ~, ou seja, /home/user/.vault_pass.txtfoi especificado.

030
fonte
11
Apenas para que fiquemos claros - o nome da variável de ambiente é ANSIBLE_VAULT_PASSWORD_FILEcorreto?
13dimitar
E qual é o resultado echo $ANSIBLE_VAULT_PASSWORD_FILE?
13dimitar
está vazio porque eu tento usarvault_password_file = ~/.vault_pass.txt
030
nomes de variáveis são case sensitive
13dimitar
Isso é definido no ansible.cfg. Não estou usando uma variável de ambiente
030

Respostas:

1

Não está claro o motivo da falha, mas configuração vault_password_file = ~/.vault_pass.txtno /etc/ansible/ansible.cfgfoi suficiente.

030
fonte
1

Encontrei um problema com o Ansible / Python, causando uma falha na descriptografia.

Especificamente, o Ansible 2.7.10 e 2.7.13 no Python 3.6.8 no Ubuntu 18.04 não descriptografaria (usando ansible-vault edit -vvvvv) um arquivo de cofre idêntico ao arquivo que descriptografou OK no macOS 10.13 usando o Python 3.7.2 com as mesmas versões do Ansible.

A atualização para o Python 3.7.3 no Ubuntu (usando o apt-get install python3.718.04) corrigiu isso.

Seu problema pode ser diferente, mas se estiver no Python 3.6 ou inferior, tentarei atualizar para o 3.7.

RichVel
fonte
-1

De acordo com os documentos ,

Você também pode definir a variável ANSIBLE_VAULT_PASSWORD_FILEenvironment, por exemplo, ANSIBLE_VAULT_PASSWORD_FILE = ~ / .vault_pass.txt e o Ansible procurará automaticamente a senha nesse arquivo.

Garante que você está usando exatamente o mesmo caso.

Findarato
fonte
11
Você are'missing a questão, é sobre a propriedade do arquivo de configuração especial, é afirmado literalmente na questão, lê-lo novamente com cuidado
Tensibai