Вступление
В частных репозиториях CI и Source Control, таких как Gitlab-ce, можно скопировать ~ / .vault_pass.txt на сервер и позволить CI использовать его для дешифрования файлов с использованием Ansible.
проблема
В общедоступных CI и репозиториях контроля версий, таких как Bitbucket, невозможно скопировать ~ / .vault_pass.txt на сам CI-сервер.
обсуждение
В Bitbucket можно определить зашифрованные переменные, но при проверке этого файла единственными переменными, связанными с VAULT, являются:
ANSIBLE_ASK_VAULT_PASSANSIBLE_VAULT_PASSWORD_FILE
Эти переменные не являются опцией для решения проблемы, так как когда они ANSIBLE_ASK_VAULT_PASSустановлены, по- ansible-vaultпрежнему запрашиваются:
user@host $
Vault password:
Когда тот же пароль введен, он может открыть зашифрованный файл, но цель состоит в том, чтобы открыть файл без необходимости файла или ввода пароля в командной строке.
Другая попытка решить проблему была запущена export ANSIBLE_ASK_VAULT_PASS=<ansible-vault-password>, но интерактивный режим сохраняется.
Другой вариант export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt, но тогда этот файл нужно отправить в репозиторий, но репозитории исходного контроля не должны содержать пароли.