介绍
在像Gitlab-ce这样的私有CI和源代码控制存储库上,可以将〜/ .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
,但是随后需要将此文件推送到存储库,但是源代码控制存储库不应包含密码。