我有一个剧本执行以下操作,将所有 txt 文件从远程主机目录复制到我的源目录。
- name: Find files to copy
find: paths="/tmp/foo" recurse=no patterns="*.txt"
register: files_to_copy
- name: Copy files
fetch: src={{ item.path }} dest=/tmp/foo_files
with_items: "{{ files_to_copy.files }}"
Run Code Online (Sandbox Code Playgroud)
如果2个远程主机(例如domainA.com和domainB.com)在各自的tmp/foo目录中有foo.txt和bar.txt,我希望主机目录上的最终结果是:
/tmp/foo_files/
foo.txt
栏.txt
我从上面运行得到的是主机目录包含:
/tmp/foo_files/domainA.com/tmp/foo/foo.txt
/tmp/foo_files/domainB.com/tmp/foo/bar.txt
您可以flat: yes在fetch任务中设置,参考。https://docs.ansible.com/ansible/latest/modules/fetch_module.html
允许您覆盖将主机名/路径/到/文件附加到目标的默认行为。如果 dest 以“/”结尾,它将使用源文件的基本名称,类似于复制模块。显然,只有当文件名唯一时这才方便。
- name: find files to copy
find:
paths: "/tmp/foo"
recurse: no
patterns: "*.txt"
register: files_to_copy
- name: Copy files
fetch:
src: "{{ item.path }}"
dest: /tmp/foo_files/
flat: yes
with_items: "{{ files_to_copy.files }}"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12207 次 |
| 最近记录: |