Estamos utilizando Ansible Vault para almacenar contraseñas, claves privadas para certificados, etc. en nuestro repositorio git de Ansible Playbook. Todos nuestros datos privados existentes están en forma de texto, por lo que podemos almacenarlos en variables. Estos se utilizan en plantillas o con el content
parámetro del módulo de copia.
Ahora, tenemos un archivo Java KeyStore, que lamentablemente tiene un formato binario. Como tal, no se puede almacenar dentro de una variable, o al menos no sé cómo hacerlo. ¿Cuál sería la forma más fácil de cifrar nuestro archivo correctamente mientras descansa en git, pero disponible cuando se ejecuta ansible-playbook
?
Lo que ya he intentado sin éxito:
- Codificar el archivo binario en base64, almacenar los datos codificados en una variable y usar el módulo de plantilla con
{{base64_data | b64decode}}
. Lleva a muchosEF BF BD
volcados hexadecimales del archivo resultante. Los tres bytes codifican el carácter de reemplazo Unicode en UTF-8, por lo que hay un problema con la interpretación de los datos binarios como texto. - Codificar el archivo binario en base64, almacenar los datos codificados en una variable y usar el módulo de copia con
content="{{base64_data | b64decode}}"
. Ansible se queja con "Una variable inserta un nuevo parámetro en los argumentos del módulo". Al usar comillas simples en lugar de comillas dobles, Ansible se queja con "cadena de argumento de análisis de error", y una copia de todos los datos binarios, volcados al terminal ...