sno*_*now 11 ansible ansible-vault
我有一个带有保险库的Ansible剧本,我想通过我的网络界面中的提示框询问保险箱密码,然后在运行ansible playbook时传递发布的密码.我试着用:
echo $password | ansible-playbook test.yml --ask-vault-pass
Run Code Online (Sandbox Code Playgroud)
将密码传递给playbook,但它不起作用,错误信息是:
"msg":"试图解密但没有发现保险库秘密"
我不想将密码存储在文件中以供某些调用,现在我只想尝试在运行时自动将密码传递给playbook.对我有什么建议吗?ansible版本是2.4.
tec*_*raf 11
您可以使用脚本而不是通过交互式界面提供密码.
以下是您的用例示例:
path_to/vault_secret.sh
使用以下内容保存文件(添加执行权限):
#!/bin/bash
echo $password
Run Code Online (Sandbox Code Playgroud)执行:
ansible-playbook test.yml --vault-password-file path_to/vault_secret.sh
Run Code Online (Sandbox Code Playgroud)或者:
添加到ansible.cfg
:
[defaults]
vault_password_file=path_to/vault_secret.sh
Run Code Online (Sandbox Code Playgroud)执行:
ansible-playbook test.yml
Run Code Online (Sandbox Code Playgroud)Zle*_*ni 6
您可以--vault-password-file
与文件描述符一起使用:
ansible-playbook test.yml --vault-password-file <(echo somepassword)
Run Code Online (Sandbox Code Playgroud)