Nous utilisons Ansible Vault pour stocker les mots de passe, les clés privées des certificats, etc. dans notre référentiel git Ansible Playbook. Toutes nos données privées existantes sont sous forme de texte, nous pouvons donc les stocker dans des variables. Ceux-ci sont ensuite utilisés dans des modèles ou avec le content
paramètre du module de copie.
Maintenant, nous avons un fichier Java KeyStore, qui a malheureusement un format binaire. En tant que tel, il ne peut pas être stocké dans une variable - ou du moins je ne sais pas comment le faire. Quelle serait la façon la plus simple d'avoir notre fichier correctement chiffré pendant qu'il se trouve dans git, mais disponible lors de l'exécution ansible-playbook
?
Ce que j'ai déjà essayé sans succès:
- Encodage du fichier binaire en base64, stockage des données encodées dans une variable et utilisation du module modèle avec
{{base64_data | b64decode}}
. Conduit à beaucoup deEF BF BD
vidage hexadécimal du fichier résultant. Les trois octets codent le caractère de remplacement Unicode en UTF-8, il y a donc un problème avec l'interprétation des données binaires comme du texte. - Encodage du fichier binaire en base64, stockage des données encodées dans une variable et utilisation du module de copie avec
content="{{base64_data | b64decode}}"
. Ansible se plaint de "Une variable a inséré un nouveau paramètre dans les arguments du module." Lors de l'utilisation de guillemets simples au lieu de guillemets doubles, Ansible se plaint de la "chaîne d'arguments d'analyse d'erreur" et d'une copie de toutes les données binaires, vidées sur le terminal ...