Ansible 命令行从保管库检索 ssh 密码

Ask*_*arn 1 ansible

我正在尝试设置 Ansible 来管理来自不同客户的 Linux 机器,这是我们必须使用的。

  1. 没有 Pub 密钥身份验证 - 我和你一样想要它,但它不会很快发生。
  2. 我们以 root 身份登录,每个客户对所有 linux 机器都有不同的 root 密码。我们正在推动禁用直接 root 登录并通过执行所有操作,sudo但同样需要一些时间。

我设法为每个客户创建一个ansible库文件,ansible_ssh_useransible_ssh_pass在它和下面的播放本书正常工作。

---
- hosts:
    - SERV01
    - SERV02
  vars_files:
    - roles/common/vault/main.yml

  tasks:
    - name: enable and start ntpd
      service: name=ntpd enabled=yes state=running
Run Code Online (Sandbox Code Playgroud)

现在我想知道如何从命令行使用 Vault 文件,但以下方法均无效。

ansible customer1 -m shell -a "var_files:roles/common/vault/main.yml uptime" --ask-vault-pass

ansible customer1 -m shell -a "uptime" -e "vars_files:roles/common/vault/main.yml"  --ask-vault-pass
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么 ?

谢谢

Ask*_*arn 6

最后我发现了如何做到这一点:

ansible customer1 -e @group_vars/vault/customer1.yml --ask-vault-pass -m shell -a uptime

现在我可以把ansible_ssh_user,ansible_ssh_passansible_sudo_pass放在一个保险库文件中,我只需要记住保险库密码。

我希望这也能让 Ansible 为您带来更多乐趣。

谢谢