如果我不得不使用 just copy,这就是我会做的。在此示例中,我使用patterns的是特定于 Python 和 a 的.hiddenfile(我使用 hidden 来演示 find 有很多可供探索的选项)。然而,基本思想 - 您可以使用模式/正则表达式过滤器来满足您的需求。
- name: prepare a list of files to copy from some place
find:
paths: /var/some-place
hidden: yes
patterns:
- "*.py"
- ".hiddenfile"
delegate_to: localhost
register: target_files
- name: copy files to other place
copy:
src: "{{ item.path }}"
dest: /var/other-place
with_items: "{{ target_files.files }}"
tags:
- copy
最好的选择可能是使用该
synchronize
模块。而该
copy
模块使用 Python 复制文件并且其功能受到限制。复制模块文档中有一条注释 :使用该
synchronize
模块,可以将exclude
模式传递rsync_opts
给rsync
Ansible 正在执行的命令。但该
synchronize
模块有一些注意事项。就像rsync
安装在本地和远程机器上的要求一样。这就是为什么我在不需要时不会使用它的原因。如果我不得不使用 just
copy
,这就是我会做的。在此示例中,我使用patterns
的是特定于 Python 和 a 的.hiddenfile
(我使用 hidden 来演示 find 有很多可供探索的选项)。然而,基本思想 - 您可以使用模式/正则表达式过滤器来满足您的需求。