Я зашифровал кучу файлов (сертификатов) с помощью следующего скрипта
for i in $(find . -type f); do ansible-vault encrypt $i --vault-password-file ~/.vault && echo $i encrypted ; done
Во время rsyncing я запускаю что-то вроде этого
- name: Copy letsencrypt files
synchronize:
src: "{{ path }}/letsencrypt/"
dest: /etc/letsencrypt/
rsync_path: "sudo rsync"
rsync_opts:
- "--delete"
- "--checksum"
- "-a"
notify:
- Reload Nginx
Проблема, с которой я столкнулся, заключается в том, что файлы, которые были перемещены, все еще оставались зашифрованными. Я думал, что ansible достаточно умен, чтобы определить, было ли оно зашифровано, и расшифровать, как я делаю здесь.
- name: Copy deploy private key
copy:
content: "{{ private_key_content }}"
dest: "/home/deploy/.ssh/id_rsa"
owner: deploy
group: deploy
mode: 0600
no_log: true
Вернемся к предыдущему вопросу: как убедиться, что файлы в папке/файлах расшифрованы перед rsyncing?
Изменить:
Я попытался использовать модуль копирования, поскольку он поддерживает шифрование, но модуль, похоже, зависает. Заметил некоторые проблемы с модулем копирования для каталогов на ansible github, и я вернулся к синхронизации.
Я также попробовал подход with_fileglob, но он сглаживает структуру каталогов.
Редактировать 2:
У меня есть шифрование, дешифрование для работы с модулем копирования, но оно ужасно медленное.