Wprowadzenie
W prywatnych repozytoriach CI i Source Control, takich jak Gitlab-ce, można skopiować ~ / .vault_pass.txt na serwer i pozwolić, aby używał go do odszyfrowywania plików przy użyciu Ansible.
Problem
W publicznych repozytoriach CI i Source Control, takich jak Bitbucket, nie można skopiować pliku ~ / .vault_pass.txt na sam serwer CI.
Dyskusja
W Bitbucket można zdefiniować zaszyfrowane zmienne, ale po sprawdzeniu tego pliku jedynymi zmiennymi powiązanymi z VAULT są:
ANSIBLE_ASK_VAULT_PASS
ANSIBLE_VAULT_PASSWORD_FILE
Te zmienne nie są opcją rozwiązania problemu, ponieważ gdy ANSIBLE_ASK_VAULT_PASS
jest ustawiony, ansible-vault
nadal monituje:
user@host $
Vault password:
Po wprowadzeniu tego samego hasła można otworzyć zaszyfrowany plik, ale jego celem jest otwarcie pliku bez potrzeby podawania pliku lub wpisywania hasła w monicie.
Trwała kolejna próba rozwiązania problemu export ANSIBLE_ASK_VAULT_PASS=<ansible-vault-password>
, ale tryb interaktywny nadal występuje.
Inną opcją jest export ANSIBLE_VAULT_PASSWORD_FILE=~/.vault_pass.txt
, ale następnie plik ten musi zostać przekazany do repozytorium, ale repozytoria kontroli źródła nie powinny zawierać haseł.