Ansible playbook, чтобы узнать конкретные файлы в подкаталогах - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть структура каталогов, как показано ниже, я хочу получить определенные файлы подкаталогов, используя ansible, а не все.

/mnt/server1 ->
      ----> yyy.deb

      ----> /mnt/server1/All/tttsss.deb

      ----> /mnt/server1/HS-CLONE/gggg.deb

      ----> /mnt/server1/HS-TEST/kkkk.deb

Мне нужно найти только файлы, представленные в каталогах /mnt/server1/All/tttsss.deb and /mnt/server1/HS-CLONE/gggg.deb.Мне не требуются все остальные файлы.

Когда я пытаюсь использовать приведенную ниже логику, в качестве вывода также выходит файл родительского каталога yyy.deb.

- name: Ansible find files in subdirectory examples
  find:
         paths:  /mnt/server1
         file_type: file
         recurse: yes
         use_regex: yes
         patterns:
           - 'All'
           - "HS-CLONE"
           - '.*deb$'

  register: files_matched_subdirectory

С приведенным выше выводом логики как:

Вывод:

yyy.deb
/mnt/server1/All/tttsss.deb
/mnt/server1/HS-CLONE/gggg.deb

Ожидаемый вывод должен быть:

/mnt/server1/All/tttsss.deb
/mnt/server1/HS-CLONE/gggg.deb

1 Ответ

1 голос
/ 19 сентября 2019

Это происходит из-за того, что в вашей команде поиска есть ниже определенный шаблон, который будет соответствовать yyy.deb в каталоге /mnt/server1

patterns:
    - '.*deb$'

, вы можете использовать параметр excludes, чтобы явно исключить этот конкретный файл:

- name: Ansible find files in subdirectory examples
  find:
         paths:  /mnt/server1
         file_type: file
         recurse: yes
         use_regex: yes
         patterns:
           - 'All'
           - "HS-CLONE"
           - '.*deb$'
         excludes: 
           - 'yyy.deb'
  register: files_matched_subdirectory

Или, может быть, вы можете попробовать что-то вроде ниже в параметре шаблона:

patterns:
  - 'All'
  - "HS-CLONE"
  - '*/.*deb$'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...