Ansible-vault 不适用于 --vault-password-file

Rub*_*dob 0 ansible

对于我们必须存储(MySQL 用户的)密码的某种 yml 文件,我们使用 ansible-vault 加密来维护一些安全性。

问题是每次我们必须编辑时,我们都被迫输入密码。

我正在寻找如何解决这个问题,看起来很容易,但我还不能让它工作。

我在我的主目录中创建了一个文件,名为:

.vault_pass.txt
Run Code Online (Sandbox Code Playgroud)

在里面,我有密码。在我的存储库的 ansible.cfg 中,我有一个变量:

vault_password_file = ~/.vault_pass.txt
Run Code Online (Sandbox Code Playgroud)

没有按预期工作。所以我试图强制 ansible-vault 命令使用这个参数读取文件

# ansible-vault decrypt --vault-password-file ~/.vault_pass.txt vars/vars-mysql-config.yml
Run Code Online (Sandbox Code Playgroud)

输出错误:

ERROR! input is not vault encrypted data for vars/vars-mysql-config.yml
Run Code Online (Sandbox Code Playgroud)

似乎我在这里忘记了一些东西,但我无法找到正确的信息。

任何人有任何想法吗?

谢谢你们!

Kon*_*rov 5

我猜你误用了decryptcommand 而不是view.

要查看加密文件使用view

ansible-vault view --vault-password-file ~/.vault_pass.txt vars/vars-mysql-config.yml
Run Code Online (Sandbox Code Playgroud)

如果要解密文件并将其保留为纯文本,请使用decrypt

ansible-vault decrypt --vault-password-file ~/.vault_pass.txt vars/vars-mysql-config.yml
Run Code Online (Sandbox Code Playgroud)

如果您尝试decrypt第二次运行命令,它将给您预期的错误:

错误!输入不是 vars/vars-mysql-config.yml 的保险库加密数据

因为文件已经是纯文本的。