Introducción
En un CI privado y repositorios de control de código fuente como Gitlab-ce, es posible copiar un ~ / .vault_pass.txt en el servidor y dejar que el CI lo use para descifrar archivos usando Ansible.
Problema
En los CI públicos y los repositorios de control de código fuente como Bitbucket, no es posible copiar un ~ / .vault_pass.txt en el servidor de CI.
Discusión
En Bitbucket es posible definir variables encriptadas, pero cuando este archivo está marcado, las únicas variables relacionadas con VAULT son:
ANSIBLE_ASK_VAULT_PASS
ANSIBLE_VAULT_PASSWORD_FILE
Estas variables no son una opción para resolver el problema, ya que cuando ANSIBLE_ASK_VAULT_PASS
se configura el sistema ansible-vault
todavía se solicita:
user@host $
Vault password:
Cuando se ingresa la misma contraseña, puede abrir el archivo cifrado, pero el objetivo es abrir el archivo sin necesidad de un archivo o ingresar una contraseña en un mensaje.
Se estaba ejecutando otro intento de resolver el problema export ANSIBLE_ASK_VAULT_PASS=<ansible-vault-password>
, pero el modo interactivo persiste.
Otra opción es export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
, pero luego este archivo debe enviarse al repositorio, pero los repositorios de control de origen no deben contener contraseñas.