我必须将多达一百个敏感文件部署到远程服务器。这些文件使用ansible-vault进行了加密,因此我可以将所有内容保留在版本控制中。
相关的ansible结构如下:
roles/
app/
tasks/
main.yml
files/
foo
bar
....
foobar
所有文件均由ansible-vault encrypt *
加密。请注意,文件名没有任何模式。
我可以使用以下任务一张一张地复制文件:
- name: Copy encrypted foo file
copy:
src: "{{ role_path }}/files/foo"
dest: "/remote/server/destination/foo"
owner: remote-owner
group: remote-owner
mode: 0640
但是显然每个文件只能执行一个复制任务。
问题是我如何编写任务以整洁的方式复制所有ansible-vault加密文件?
答案 0 :(得分:0)
发现ansible的复制模块会自动递归复制。任何ansible-vault加密文件也将被解密。
解决方案是:
- name: Copy encrypted files
copy:
src: "{{ role_path }}/files/"
dest: "/remote/server/destination"
owner: remote-owner
group: remote-owner
mode: 0640