introduction
Sur un CI privé et des référentiels de contrôle de source comme Gitlab-ce, il est possible de copier un ~ / .vault_pass.txt sur le serveur et de le laisser utiliser par le CI pour déchiffrer des fichiers à l'aide d'Ansible.
Problème
Sur les CI publics et les référentiels de contrôle de source comme Bitbucket, il n'est pas possible de copier un ~ / .vault_pass.txt sur le serveur CI lui-même.
Discussion
Dans Bitbucket, il est possible de définir des variables chiffrées, mais lorsque ce fichier est vérifié, les seules variables liées à VAULT sont:
ANSIBLE_ASK_VAULT_PASS
ANSIBLE_VAULT_PASSWORD_FILE
Ces variables ne sont pas une option pour résoudre le problème, car lorsque le ANSIBLE_ASK_VAULT_PASS
paramètre est défini, vous êtes ansible-vault
toujours invité:
user@host $
Vault password:
Lorsque le même mot de passe est entré, il peut ouvrir le fichier crypté, mais le but est d'ouvrir le fichier sans avoir besoin d'un fichier ou entrer un mot de passe dans une invite.
Une autre tentative de résolution du problème était en cours d'exécution export ANSIBLE_ASK_VAULT_PASS=<ansible-vault-password>
, mais le mode interactif persiste.
Une autre option est export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
, mais ce fichier doit être poussé vers le référentiel, mais les référentiels de contrôle source ne doivent pas contenir de mots de passe.