ansible-vault 加密凭证

ansible-vault 加密凭证

我有一个包含一台主机的库存文件:

10.1.32.123 ansible_ssh_用户=vagrant ansible_ssh_pass=vagrant

我的yaml文件:

- hosts: all
  sudo: yes
  gather_facts: yes
  serial: 20

  roles:

yaml我希望用密码保护的不是文件,而是我的库存文件,因为它包含用户凭据。虽然这是不可能的,因为当我运行剧本时,库存文件中的内容不会解密。如果我加密了文件,就会解密yaml

ansible-playbook inventory site.yml --ask-vault-pass
  1. 有没有办法将凭证添加ansible_ssh_user=vagrant ansible_ssh_pass=vagrantyaml文件中,并只将 IP 保留在库存文件中。

文档:

保险库

答案1

我认为您无法加密 hosts 文件。更好的方法是将任何敏感信息(如凭据)存储在使用 ansible-vault 加密的辅助 vars 文件中,然后将该文件包含在您的剧本中:

- hosts: all
  sudo: yes
  gather_facts: yes
  vars_files:
    - /path/to/encrypted/vars.yml

您的inventory文件包含一个主机:

10.1.1.2

vars/vars.yml将存储您的凭证:

ansible_ssh_user: vagrant
ansible_ssh_password: vagrant

要使用多个主机,您可以在清单文件中添加组。特定组中的主机共享相同的凭据:

[group1]
10.1.1.2
10.1.1.3

[group2]
10.1.1.4
10.1.1.5

你的剧本现在将有两个主机部分:

- hosts: group1
  vars_files:
    - vars/group1.yml

- hosts: group2
  vars_files:
    - vars/group2.yml

group1.yml和文件group2.yml必须共享相同的密码。

相关内容