Назад | Перейти на главную страницу

Как зашифровать двоичные файлы в Ansible?

Мы используем Ansible Vault для хранения паролей, закрытых ключей для сертификатов и т. д. в нашем репозитории Ansible Playbook git. Все наши существующие частные данные представлены в текстовой форме, поэтому мы можем хранить их в переменных. Затем они используются в шаблонах или с content параметр модуля копирования.

Теперь у нас есть файл Java KeyStore, который, к сожалению, имеет двоичный формат. Таким образом, его нельзя сохранить внутри переменной - по крайней мере, я не знаю, как это сделать. Каким будет самый простой способ правильно зашифровать наш файл, пока он находится в git, но доступен при запуске ansible-playbook?

Что я уже безуспешно пробовал:

Для этого вы можете использовать команду оболочки с переменной base64.

- vars:
  - myvar: "<my_base64_var>"
- name: Create binary file
  shell: "echo '{{myvar}}' | base64 -d > /var/tmp/binary.dat"

Эрик

Мы делаем это для нашей настройки ansible:

-Мы шифруем отдельные конфиденциальные материалы (небольшая часть нашего репозитория), используя https://www.agwa.name/projects/git-crypt/ -Мы все всегда фиксируем, используя теги git sign -Мы периодически проверяем, есть ли неподписанные файлы

Преимущество git-crypt в том, что поскольку он полагается на фильтры git, шифрование является прозрачным. Кроме того, вы можете предоставить разработчикам доступ к репозиторию без ущерба для зашифрованного содержимого (он будет игнорировать зашифрованные файлы, если невозможно получить ключ дешифрования).