Zoeken…


Opmerkingen

Ansible biedt Vault aan (niet te verwarren met HashiCorp Vault !) Om gevoelige gegevenscodering te verwerken. Vault richt zich primair op het coderen van gestructureerde gegevens zoals variabelen, taken, handlers.

Codering van gevoelige gestructureerde gegevens

Maak eerst een sleutelbestand, bijvoorbeeld vault_pass_file , dat idealiter een lange reeks willekeurige tekens bevat. In Linux-systemen kunt u pwgen gebruiken om een willekeurig wachtwoordbestand te maken:

pwgen 256 1 > vault_pass_file

Gebruik dit bestand vervolgens om gevoelige gegevens te coderen, bijv. groups_vars/group.yml :

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

Vanaf nu heb je het vault_pass_file nodig om een playbook uit te vault_pass_file :

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

Note, kunt u ook gebruik maken van de vlag --vault-password-file vault_pass_file in plaats van het instellen van de ANSIBLE_VAULT_PASSWORD_FILE variabele omgeving.

Om het geheim op schijf te bewerken of te ontcijferen, kunt u respectievelijk ansible-vault edit en ansible-vault decrypt ansible-vault edit gebruiken.

Opzoekpijpen gebruiken om niet-gestructureerde, met kluis versleutelde gegevens te decoderen

Met Vault kunt u ook niet-gestructureerde gegevens, zoals privé-sleutelbestanden, coderen en ze nog steeds in uw spel met de lookup kunnen decoderen.

---

- 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')

Het gebruik van lokale cialis om met kluis versleutelde sjablonen te decoderen

U kunt een spel uitvoeren dat is gebaseerd op kluis-gecodeerde sjablonen met behulp van de local_action module.

---

- 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

Let op het changed_when: False . Dit is belangrijk in het geval dat u idempotentetests uitvoert met uw onmogelijke rollen - anders wordt elke keer dat u het playbook uitvoert een verandering gesignaleerd. In group_vars/all.yml kunt u een globaal decodeercommando instellen voor hergebruik, bijvoorbeeld 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"

Wanneer u nu een spel uitvoert, moet u de omgevingsvariabele ANSIBLE_VAULT_PASSWORD_FILE instellen dat deze naar uw ANSIBLE_VAULT_PASSWORD_FILE (idealiter met een absoluut pad).



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow