运行Ansible playbook时如何自动传递保管库密码?

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

您可以使用脚本而不是通过交互式界面提供密码.

以下是您的用例示例:

  1. path_to/vault_secret.sh使用以下内容保存文件(添加执行权限):

    #!/bin/bash
    echo $password
    
    Run Code Online (Sandbox Code Playgroud)
  2. 执行:

    ansible-playbook test.yml --vault-password-file path_to/vault_secret.sh
    
    Run Code Online (Sandbox Code Playgroud)

或者:

  1. 添加到ansible.cfg:

    [defaults]
    vault_password_file=path_to/vault_secret.sh
    
    Run Code Online (Sandbox Code Playgroud)
  2. 执行:

    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)