将多个ansible-vault加密文件复制到远程服务器

时间:2018-10-23 04:14:35

标签: ansible

我必须将多达一百个敏感文件部署到远程服务器。这些文件使用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加密文件?

1 个答案:

答案 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