-1

我使用以下脚本加密了一堆文件(证书)

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:

我得到了加密,解密以使用复制模块,但速度非常慢。

4

1 回答 1

3

在 ansible 站点打开时已经存在一个问题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.
于 2018-09-10T12:43:20.323 回答