В поиске я получаю следующий вывод, как фильтровать только путь?
find:
paths: /jv01
recurse: yes
file_type: directory
patterns: 'agent_13.3.0.0.0'
register: oem
- debug:
var: oem
"oem": {
"changed": false,
"examined": 24156,
"failed": false,
"files": [
{
"atime": 1545128921.5473044,
"ctime": 1545120358.3347161,
"dev": 64768,
"gid": 1027,
"inode": 67,
"isblk": false,
"ischr": false,
"isdir": true,
"isfifo": false,
"isgid": false,
"islnk": false,
"isreg": false,
"issock": false,
"isuid": false,
"mode": "0755",
"mtime": 1545120358.3347161,
"nlink": 28,
"path": "/jv01/oracle/agent_13.3.0.0.0",
"rgrp": true,
"roth": true,
"rusr": true,
"size": 4096,
"uid": 1027,
"wgrp": false,
"woth": false,
"wusr": true,
"xgrp": true,
"xoth": true,
"xusr": true
}
],
"matched": 1,
"msg": ""
}
}
Пути можно получить, перебирая список и извлекая каждый путь по отдельности.
Вы должны сделать это, потому что find возвращает список dicts о каждом файле. В конце концов, может быть возвращено несколько.
- name: Show file paths
debug:
msg: "{{ item.path }}"
with_items: "{{ oem.files }}"
попробуйте фильтры Jinja2
{{ oem.files | map(attribute='path') | list }}
имейте в виду, что это создаст список. Если вам не нужен список, вы можете использовать это
{{ oem.files | map(attribute='path') | join('') }}
но в случае, если файлов найдено больше, выводом будут все пути к найденным файлам вместе.