前書き
プライベートCIと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
ですが、このファイルをリポジトリにプッシュする必要がありますが、ソース管理リポジトリにはパスワードを含めないでください。