Что такое ansible эквивалент для поиска -exe c cp с отфильтрованными расширениями файлов? - PullRequest
1 голос
/ 21 февраля 2020

Мне нужно заменить этот тип команды:

- name: Copy files .par
  shell: find {{ path_src }}/* -name '*.ext' -exec cp {} {{ path_dest }} \; | find {{ path_src }}/ -type f -a ! -name "*.*" -exec cp {} {{ part_dest }} \;
  ignore_errors: yes

« .ext» может отличаться для одной и той же задачи, и он связан с пунктом назначения, если я найду «». sql 'Я хочу, чтобы go к месту назначения. sql

Я пробую такое решение

- name: TEST COPY
  hosts: localhost
  tasks:
    - name: Test Find
      find:
        paths: /home/me/test/find_cpy
        file_type: file
        recurse: yes
        patterns: ['*.ext','*.sql','*.sh']
      register: find_list

    - name:
      debug: var=find_list

    - name: test set fact
      set_fact:
        path_file: "{{ find_list.files | map(attribute='path') | list }}"
      register: test_fact

    - debug: var=test_fact

    - name: test sql copy
      copy:
        src: "{{ test_fact.path}}"
        dest: "/home/me/test/test_copy/sql"
        owner: me
        mode: 0755
        when: ????

    - name: test register
      copy:
        src: "{{ item.path }}"
        dest: "/home/me/test/test_copy/"
        owner: me
        mode: 0755
      with_items: "{{ find_list.files }}"

Регистр теста в порядке, но тест sql скопировать я понятия не имею. Любые идеи

Спасибо

1 Ответ

0 голосов
/ 22 февраля 2020

Требуются только несколько изменений

- name: TEST COPY
  hosts: localhost
  gather_facts: false
  tasks:
    - name: Test Find
      find:
        paths: /home/me/test/find_cpy
        file_type: file
        recurse: yes
        patterns: ['*.ext','*.sql','*.sh']
      register: find_list

     - name:
       debug: var=find_list

    - name: test set fact
      set_fact:
        path_file: "{{ find_list.files | map(attribute='path') | list }}"
#     register: test_fact

Зарегистрированная переменная test_fact не требуется. Список путей был сохранен в path_file.

    - debug: var=path_file

    - name: test sql copy
      copy:
#       src: "{{ test_fact.path}}"
        src: "{{ item }}"
        dest: "/home/me/test/test_copy/sql"
        owner: me
        mode: 0755
      loop: "{{ path_file }}"

L oop в списке путей path_file и копировании элементов в место назначения.

    - name: test register
      copy:
#       src: "{{ item.path }}"
        src: "{{ item }}"
        dest: "/home/me/test/test_copy/"
        owner: me
        mode: 0755
#     with_items: "{{ find_list.files }}"
      loop: "{{ path_file }}"

L oop find_list.files и item.path дают те же результаты, что и path_file и item. Я не уверен, какова цель этой задачи.

...