【发布时间】:2019-05-17 17:21:34
【问题描述】:
我需要在我的项目中列出一些目录,我有这种树:
.
└── path
└── to
├── aa
│ └── x9999
├── bb
│ ├── x9997
│ └── x9998
├── cc
└── dd
我已经在我的剧本中完成了这个任务来查找目录:
---
- name: 'test of find'
hosts: localhost
vars:
loopVar:
- 'aa'
- 'bb'
- 'cc'
- 'dd'
tasks:
- name: 'find'
find:
path: '/path/to/{{item}}'
file_type: directory
patterns: '[^_]*[a-z]+[0-9]{4}[a-z]*$'
use_regex: yes
register: list
loop: '{{loopVar}}'
结果是:
{
"list": {
"results": [
{
"files": [
{
"path": "/path/to/aa/x9999"
}
],
"item": "aa",
"matched": 1
},
{
"files": [
{
"path": "/path/to/bb/x9997"
},
{
"path": "/path/to/bb/x9998"
}
],
"item": "bb",
"matched": 2
},
{
"files": [],
"item": "cc",
"matched": 0
},
{
"files": [],
"item": "dd",
"matched": 0
}
]
}
}
我想用这个数组调用一个include_role,但我不能这样做,因为我需要var 与path 处于同一级别。
我想努力使我的结果具有这种价值:
{ "final": [
{ "path": "/path/to/aa/x9999", "var": "aa" },
{ "path": "/path/to/bb/x9998", "var": "bb" },
{ "path": "/path/to/bb/x9997", "var": "bb" }
]
}
我用 set_fact 尝试了很多东西,但我不知道如何做这种工作。 非常感谢您的帮助:-)
【问题讨论】: