Ми використовуємо Ansible Vault для зберігання паролів, приватних ключів для сертифікатів тощо у нашому сховищі git Ansible Playbook. Всі наші існуючі приватні дані у текстовій формі, тому ми можемо зберігати їх у змінних. Потім вони використовуються в шаблонах або з content
параметром модуля копіювання.
Тепер ми маємо файл Java KeyStore, який, на жаль, має двійковий формат. Як такий, він не може зберігатися всередині змінної - або, принаймні, я не знаю, як це зробити. Який би був найпростіший спосіб, щоб наш файл був зашифрований належним чином, поки він знаходиться в git, але доступний під час роботи ansible-playbook
?
Що я вже намагався без успіху:
- Кодування двійкового файлу в base64, зберігання кодованих даних у змінній та використання модуля шаблону з
{{base64_data | b64decode}}
. Приводить до безлічіEF BF BD
шестигранних дампів отриманого файлу. Три байти кодують символ заміни Unicode в UTF-8, тому виникає проблема з інтерпретацією бінарних даних як тексту. - Кодування двійкового файлу в base64, зберігання кодованих даних у змінній та використання модуля копіювання з
content="{{base64_data | b64decode}}"
. Відповідач скаржиться на те, що "Змінна вставила новий параметр в аргументи модуля." При використанні одиничних лапок замість подвійних лапок, Ansible нарікає на "аргумент рядка аргументу рядка" та копію всіх бінарних даних, скидаються на термінал ...