
我有一個包含一台主機的清單檔案:
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
- 有沒有辦法將憑證加入
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
必須共用相同的密碼。