使用 Ansible Playbook 查找子目录中的特定文件

使用 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

答案1

您应该明确指定所需的路径。如果您不想搜索路径/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$'

相关内容