Este documento indica que, desde o Ansible 2.3, deve ser possível criptografar determinados vars usando um !vault |
prefixo, em vez de colocar uma variável e chaves em um arquivo do Vault e criptografá-lo completamente.
notsecret: myvalue mysecret: !vault | $ANSIBLE_VAULT;1.1;AES256 66386439653236336462626566653063336164663966303231363934653561363964363833313662 6431626536303530376336343832656537303632313433360a626438346336353331386135323734 62656361653630373231613662633962316233633936396165386439616533353965373339616234 3430613539666330390a313736323265656432366236633330313963326365653937323833366536 34623731376664623134383463316265643436343438623266623965636363326136 other_plain_text: othervalue
No momento, a estrutura é a seguinte:
ansible/group_vars/testing/vars
ansible/group_vars/testing/vault
Quando uma variável criptografada é movida do diretório do vault para o diretório vars e ansible-vault decrypt ansible/group_vars/testing/vars
é executada, ela retorna:
ERROR! input is not vault encrypted data for ansible/group_vars/testing/vars
Essa variável com cofre é descriptografada com o segredo do cofre fornecido e usada como uma variável normal. A linha de comando ansible-vault suporta stdin e stdout para criptografar dados dinamicamente, que podem ser usados no seu editor favorito para criar essas variáveis com cofre; você só precisa adicionar a tag! vault para que o Ansible e o YAML estejam cientes da necessidade de descriptografar. O | também é necessário, pois a criptografia do cofre resulta em uma sequência de várias linhas.
Questões
- As variáveis que precisam ser criptografadas devem ser criptografadas uma a uma usando a linha de comando?
- Quais são as melhores práticas para reestruturar a antiga estrutura Ansible? Por exemplo, remova os arquivos do Vault e coloque todos os Vars criptografados no arquivo Vars?