Ansible-Vault - Anmeldeinformationen verschlüsseln

Ansible-Vault - Anmeldeinformationen verschlüsseln

Ich habe eine Inventardatei mit einem Host:

10.1.32.123 ansible_ssh_user=vagrant ansible_ssh_pass=vagrant

Meine yamlDatei:

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

  roles:

Ich möchte nicht die yamlDatei 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 yamlDatei verschlüsselt habe.

ansible-playbook inventory site.yml --ask-vault-pass
  1. Gibt es eine Möglichkeit, die Anmeldeinformationen ansible_ssh_user=vagrant ansible_ssh_pass=vagrantzur yamlDatei hinzuzufügen und nur die IP in der Inventardatei zu behalten?

DOKUMENTE:

GEWÖLBE

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 inventoryDatei enthält einen Host:

10.1.1.2

Sie vars/vars.ymlspeichern 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.ymlund group2.ymlDateien müssen dasselbe Kennwort haben.

verwandte Informationen