Мне нужно перечислить несколько каталогов в моем проекте, у меня есть такое дерево:
.
└── 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 , но я не нахожу, как делать такую работу.
Большое спасибо за вашу помощь: -)