
Ich habe eine Inventardatei mit einem Host:
10.1.32.123 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
Meine yaml
Datei:
- hosts: all
sudo: yes
gather_facts: yes
serial: 20
roles:
Ich möchte nicht die yaml
Datei mit einem Passwort schützen, sondern meine Inventardatei, da sie Benutzeranmeldeinformationen enthält. Das ist allerdings nicht möglich, da der Inhalt der Inventardatei beim Ausführen des Playbooks nicht entschlüsselt wird. Dies geschieht, wenn ich die yaml
Datei verschlüsselt habe.
ansible-playbook inventory site.yml --ask-vault-pass
- Gibt es eine Möglichkeit, die Anmeldeinformationen
ansible_ssh_user=vagrant ansible_ssh_pass=vagrant
zuryaml
Datei hinzuzufügen und nur die IP in der Inventardatei zu behalten?
DOKUMENTE:
Antwort1
Ich glaube nicht, dass Sie die Hosts-Datei verschlüsseln können. Ein viel besserer Ansatz wäre, alle vertraulichen Informationen wie Anmeldeinformationen in einer sekundären Vars-Datei zu speichern, die mit Ansible-Vault verschlüsselt ist, und diese Datei dann einfach in Ihr Playbook aufzunehmen:
- hosts: all
sudo: yes
gather_facts: yes
vars_files:
- /path/to/encrypted/vars.yml
Ihre inventory
Datei enthält einen Host:
10.1.1.2
Sie vars/vars.yml
speichern Ihre Anmeldeinformationen:
ansible_ssh_user: vagrant
ansible_ssh_password: vagrant
Um mehr als einen Host zu verwenden, können Sie Gruppen in der Inventardatei hinzufügen. Die Hosts, die sich in der jeweiligen Gruppe befinden, verwenden dieselben Anmeldeinformationen:
[group1]
10.1.1.2
10.1.1.3
[group2]
10.1.1.4
10.1.1.5
Ihr Playbook verfügt nun über zwei Hostabschnitte:
- hosts: group1
vars_files:
- vars/group1.yml
- hosts: group2
vars_files:
- vars/group2.yml
Die group1.yml
und group2.yml
Dateien müssen dasselbe Kennwort haben.