Estamos usando o Ansible Vault para armazenar senhas, chaves privadas para certificados etc. em nosso repositório git do Ansible Playbook. Todos os nossos dados privados existentes estão em forma de texto, para que possamos armazená-los em variáveis. Eles são usados em modelos ou com o content
parâmetro do módulo de cópia.
Agora, temos um arquivo Java KeyStore, que infelizmente possui um formato binário. Como tal, não pode ser armazenado dentro de uma variável - ou pelo menos não sei como fazê-lo. Qual seria a maneira mais fácil de ter nosso arquivo criptografado corretamente enquanto permanece no git, mas disponível durante a execução ansible-playbook
?
O que eu já tentei sem sucesso:
- Codificando o arquivo binário em base64, armazenando os dados codificados em uma variável e usando o módulo de modelo com
{{base64_data | b64decode}}
. Leva a muitosEF BF BD
despejos hexadecimais do arquivo resultante. Os três bytes codificam o caractere de substituição Unicode no UTF-8, portanto, há um problema com a interpretação dos dados binários como texto. - Codificando o arquivo binário em base64, armazenando os dados codificados em uma variável e usando o módulo de cópia com
content="{{base64_data | b64decode}}"
. O Ansible reclama com "Uma variável inseriu um novo parâmetro no módulo args". Ao usar aspas simples em vez de aspas duplas, o Ansible reclama com "erro ao analisar a sequência de argumentos" e uma cópia de todos os dados binários, despejados no terminal ...