Поиск…


замечания

Ansible предлагает Vault (чтобы не ошибиться с HashiCorp Vault !) Для обработки конфиденциального шифрования данных. Сейф в первую очередь предназначен для шифрования любых структурированных данных, таких как переменные, задачи, обработчики.

Шифрование конфиденциальных структурированных данных

Сначала создайте файл ключа, например, vault_pass_file , который идеально содержит длинную последовательность случайных символов. В системах linux вы можете использовать pwgen для создания файла случайного пароля:

pwgen 256 1 > vault_pass_file

Затем используйте этот файл для шифрования конфиденциальных данных, например groups_vars/group.yml :

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

С этого vault_pass_file для запуска учебника вам нужен vault_pass_file :

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

Обратите внимание: вы также можете использовать --vault-password-file vault_pass_file вместо установки переменной среды ANSIBLE_VAULT_PASSWORD_FILE .

Для того , чтобы изменить или расшифровать секрет на диске , вы можете использовать ansible-vault edit и ansible-vault decrypt соответственно.

Использование поисковых каналов для дешифрования неструктурированных данных, хранящихся в хранилищах

С помощью Vault вы также можете шифровать неструктурированные данные, такие как файлы секретных ключей, и все еще иметь возможность расшифровывать их в своей игре с помощью модуля lookup .

---

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

Использование local_action для дешифрования зашифрованных зашифрованных шаблонов

Вы можете запустить игру, которая полагается на зашифрованные шаблонами шаблоны, используя модуль 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

Обратите внимание, что changed_when: False . Это важно, если вы запускаете тесты idempotence с вашими незаменимыми ролями, иначе каждый раз, когда вы запускаете playbook, выдается сообщение об изменении. В group_vars/all.yml вы можете установить глобальную команду decrypt для повторного использования, например, как view_encrypted_file_cmd .

group_vars / all.yml

---

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

Теперь при запуске воспроизведения вам необходимо установить ANSIBLE_VAULT_PASSWORD_FILE среды ANSIBLE_VAULT_PASSWORD_FILE чтобы указать на ваш файл паролей хранилища (в идеале с абсолютным путем).



Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow