Вступ
У приватних сховищах інтерфейсів та джерел контролю, таких як Gitlab-ce, можна скопіювати ~ / .vault_pass.txt на сервер і дозволити CI використовувати його для розшифрування файлів за допомогою Ansible.
Проблема
На загальнодоступних сховищах CI та Source Control, таких як 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
, але тоді цей файл потрібно перенести до сховища, але джерельні сховища Control не повинні містити паролі.