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 ...
Réponses:
Pour ce faire, vous pouvez utiliser une commande shell avec une variable base64.
Eric
la source
La façon dont nous le faisons pour notre configuration ansible est la suivante:
-Nous cryptons le matériel sensible individuel (un petit sous-ensemble de notre référentiel) en utilisant https://www.agwa.name/projects/git-crypt/ -Nous nous engageons toujours en utilisant des balises git sign -Nous vérifions périodiquement s'il y a des fichiers non signés
L'avantage de git-crypt est que, puisqu'il s'appuie sur des filtres git, le cryptage est transparent. De plus, vous pouvez donner accès au référentiel aux développeurs sans compromettre le contenu chiffré (il ignorera les fichiers chiffrés si aucune clé de déchiffrement ne peut être obtenue).
la source