Suche…


Bemerkungen

Ansible bietet Vault (nicht zu verwechseln mit HashiCorp Vault !), Um sensible Datenverschlüsselung zu handhaben. Vault dient hauptsächlich dazu, strukturierte Daten wie Variablen, Aufgaben und Handler zu verschlüsseln.

Verschlüsselte vertrauliche strukturierte Daten

Erstellen Sie zunächst eine Schlüsseldatei, z. B. vault_pass_file , die idealerweise eine lange Folge von zufälligen Zeichen enthält. In Linux-Systemen können Sie pwgen , um eine zufällige Kennwortdatei zu erstellen:

pwgen 256 1 > vault_pass_file

Verwenden Sie dann diese Datei, um vertrauliche Daten zu verschlüsseln, z. B. groups_vars/group.yml :

ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-vault encrypt group_vars/group.yml

Um ein Playbook zu starten, benötigen Sie ab vault_pass_file die vault_pass_file :

ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-playbook -i inventories/nodes my-playbook.yml 

Beachten Sie, dass Sie anstelle der Umgebungsvariablen ANSIBLE_VAULT_PASSWORD_FILE auch das Flag - --vault-password-file vault_pass_file verwenden können.

Um das Geheimnis auf dem Datenträger zu bearbeiten oder zu entschlüsseln, können Sie das ansible-vault edit mit ansible-vault decrypt verwenden.

Verwenden von Lookup-Pipes zum Entschlüsseln nicht strukturierter, mit einem Tresor verschlüsselter Daten

Mit Vault können Sie auch nicht strukturierte Daten, z. B. private Schlüsseldateien, verschlüsseln und sie dennoch mit dem lookup Modul im Spiel entschlüsseln.

---

- name: Copy private key to destination
  copy:
    dest=/home/user/.ssh/id_rsa
    mode=0600
    content=lookup('pipe', 'ANSIBLE_VAULT_PASSWORD_FILE=vault_pass_file ansible-vault view keys/private_key.enc')

Verwenden von local_action zum Entschlüsseln von mit Vault verschlüsselten Vorlagen

Mit dem local_action Modul können Sie ein Spiel ausführen, das mit Tresor-verschlüsselten Vorlagen local_action .

---

- name: Decrypt template
  local_action: "shell {{ view_encrypted_file_cmd }} {{ role_path }}/templates/template.enc > {{ role_path }}/templates/template"
  changed_when: False

- name: Deploy template
  template:
    src=templates/template
    dest=/home/user/file

- name: Remove decrypted template
  local_action: "file path={{ role_path }}/templates/template state=absent"
  changed_when: False

Bitte beachten Sie das changed_when: False . Dies ist wichtig, wenn Sie Idempotenztests mit Ihren Rollen ausführen, ansonsten wird jedes Mal, wenn Sie das Playbook ausführen, eine Änderung angezeigt. In group_vars/all.yml Sie einen globalen Entschlüsselungsbefehl zur Wiederverwendung view_encrypted_file_cmd , z. B. als view_encrypted_file_cmd .

group_vars / all.yml

---

view_encrypted_file_cmd: "ansible-vault --vault-password-file {{ lookup('env', 'ANSIBLE_VAULT_PASSWORD_FILE') }} view"

Wenn Sie nun ein Spiel ANSIBLE_VAULT_PASSWORD_FILE müssen Sie die Umgebungsvariable ANSIBLE_VAULT_PASSWORD_FILE , dass sie auf Ihre ANSIBLE_VAULT_PASSWORD_FILE (idealerweise mit einem absoluten Pfad).



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow