как получить указанный c тип файлов (* .gz) в ANSIBLE - PullRequest
0 голосов
/ 19 марта 2020

файл инвентаря

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). Я хотел получить их всех. как мне это сделать?

1 Ответ

0 голосов
/ 19 марта 2020

Вы можете назначить переменную списку соответствующих удаленных файлов, например, с:

- 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 }}"

На мой взгляд, первое решение намного лучше.

...