Ansible查找模块没有列出匹配模式。这是我的目录结构
path: /home/ryan/ws
.
|___file1.txt
|___file2.yaml
|___file3.jar
|___service1
| |___1.0.7.0
| |___service1_1.0.7.0.jar
| |___1.0.19.0
| |___service1_1.0.19.0.jar
| |___1.0.123.0
| |___service1_1.0.123.0.jar
|____service2
| |___1.0.23.0
| |___service2_1.0.23.0.jar
| |___1.0.9.0
| |___service2_1.0.9.0.jar
| |___1.0.143.0
| |___service2_1.0.143.0.jar
|____service3
| |___1.0.2.0
| |___service3_1.0.2.0.jar
| |___1.0.4.0
| |___service3_1.0.4.0.jar
| |___1.0.13.0
| |___service3_1.0.13.0.jar
就像明智的一样,我有很多文件夹近20个服务。因此,我想列出每个服务中的所有目录。
这是我正在尝试的
- hosts: myserver
become: true
become_user: myuser
vars:
workspace_path: /home/ryan/ws
tasks:
- name: find folders from location
find:
paths: "{{ workspace_path }}/{{ item }}"
file_type: directory
patterns: "1.0.*.0/"
recurse: yes
use_regex: yes
with_items:
- service1
- service2
- service3
- app1
- app2
register: files_to_delete
- debug: var=files_to_delete
有人可以给我更好的方法来单独列出文件夹吗?
在您的图案中不包含路径分离器。它应该阅读
patterns: "1.0.*.0"
捕获是在'*'之前'。就像在foo中一样。*bar这是一个示例:https://gist.github.com/vpnwall-services/5e5e5cc8c11384d6e42e42e1760b73471c620