Вступление
В частных репозиториях CI и Source Control, таких как Gitlab-ce, можно скопировать ~ / .vault_pass.txt на сервер и позволить CI использовать его для дешифрования файлов с использованием Ansible.
проблема
В общедоступных CI и репозиториях контроля версий, таких как Bitbucket, невозможно скопировать ~ / .vault_pass.txt на сам CI-сервер.
обсуждение
В Bitbucket можно определить зашифрованные переменные, но при проверке этого файла единственными переменными, связанными с VAULT, являются:
ANSIBLE_ASK_VAULT_PASS
ANSIBLE_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
, но тогда этот файл нужно отправить в репозиторий, но репозитории исходного контроля не должны содержать пароли.