ansible-vault 加密憑證

ansible-vault 加密憑證

我有一個包含一台主機的清單檔案:

10.1.32.123 ansible_ssh_user=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=vagrant文件yaml中,並將 IP 保留在清單文件中。

文件:

保險庫

答案1

我認為您無法加密主機檔案。更好的方法是將任何敏感資訊(例如憑證)儲存在使用 ansible-vault 加密的輔助 vars 檔案中,然後將該檔案包含在您的 playbook 中:

- 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必須共用相同的密碼。

相關內容