Назад | Перейти на главную страницу

Находите определенные файлы в подкаталогах с помощью Ansible Playbook

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

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

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

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

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

Мне нужно только найти .deb файлы присутствуют в /mnt/server1/All/tttsss.deb и /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

С вышеуказанным логическим выходом как:

Вывод: (Не использовать опцию исключения в Playbook)

yyy.deb                              -> This file name may vary.
/mnt/server1/All/tttsss.deb
/mnt/server1/HS-CLONE/gggg.deb

Ожидаемый результат должен быть: (за исключением общего шаблона для решения моей проблемы)

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

Вы должны указать желаемые пути явно. Если ты не хочешь искать путь /mnt/server1, но только определенные подкаталоги, перечислите их.

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