如何在ANSIBLE中获取特定类型的文件(*.gz)
库存文件如何在ANSIBLE中获取特定类型的文件(*.gz),ansible,fetch,Ansible,Fetch,库存文件 user1@server1 ansible_ssh_user=user1 ansible_host=server1 user2@server2 ansible_ssh_user=user2 ansible_host=server2 test_plabook.yml --- - hosts: all tasks: - name: fetch files fetch: src: /path/to/src/dir/*.gz dest:
user1@server1 ansible_ssh_user=user1 ansible_host=server1
user2@server2 ansible_ssh_user=user2 ansible_host=server2
test_plabook.yml
---
- hosts: all
tasks:
- name: fetch files
fetch:
src: /path/to/src/dir/*.gz
dest: /path/to/dest/dir/{{ inventory_hostname}}/
flat: yes
在源目录中,我有许多以.gz(*.gz)结尾的文件。我想把它们都拿来。我怎么做 您可以为匹配的远程文件列表分配一个变量,例如:
- name: Recursively find /tmp files older than 2 days
find:
paths: /path/to/src/dir/
type: file
patterns: "*.gz"
register: files_to_fetch
或与:
- shell: "(cd /path/to/src/dir/ ; find . -type f -name '*.gz')"
register: files_to_fetch
然后将获取应用于以下项目:
- name: fetch files
fetch:
src: /path/to/src/dir/{{item}}
dest: /path/to/dest/dir/{{item}}
flat: yes
with_items: "{{ files_to_fetch }}"
或者,如果您选择了第二种解决方案:
with_items: "{{ files_to_fetch.stdout_lines }}"
在我看来,第一种解决方案要好得多。感谢rolf82提供的解决方案。我使用查找模块来解决我的案例