Расшифровка файлов хранилища ansible перед rsyncing - PullRequest
0 голосов
/ 04 сентября 2018

Я зашифровал кучу файлов (сертификатов), используя следующий скрипт

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 ?

Edit:

Я попытался использовать модуль копирования , поскольку он поддерживает шифрование, но модуль, кажется, зависает. Заметил некоторые проблемы с модулем копирования для каталогов на ansible github , и я вернулся к синхронизации.

Я также попробовал подход with_fileglob , но это выравнивает структуру каталогов.

Редактировать 2:

Я получил шифрование, расшифровку для работы с модулем копирования, но это ужасно медленно.

1 Ответ

0 голосов
/ 10 сентября 2018

На открывшемся сайте уже есть проблема https://github.com/ansible/ansible/issues/45161 и вывод:

Synchronize is a wrapper around rsync, I doubt that you can hook into the
process like that. You might want to implement a custom module doing this
or use something, which supports it.
...