Ansible:提取路径循环查找



我有一个问题,当它是一个循环时,我无法从搜索中获得路径。

我以详细模式附加结果。

ok: [server04] => (item={u'nombre': u'server04', u'activ': 1, u'sen_num': 4}) => {
"ansible_loop_var": "item", 
"item": {
"activ": 1, 
"nombre": "server04", 
"sen_num": 4
}, 
"registeroutput": {
"changed": false, 
"msg": "All items completed", 
"results": [
{
"ansible_loop_var": "item", 
"changed": false, 
"item": {
"activ": 0, 
"nombre": "server01", 
"sen_num": 1
}, 
"skip_reason": "Conditional result was False", 
"skipped": true
}, 
{
"ansible_loop_var": "item", 
"changed": false, 
"item": {
"activ": 0, 
"nombre": "server02", 
"sen_num": 2
}, 
"skip_reason": "Conditional result was False", 
"skipped": true
}, 
{
"ansible_loop_var": "item", 
"changed": false, 
"item": {
"activ": 0, 
"nombre": "son03vmonvlc-voip", 
"sen_num": 3
}, 
"skip_reason": "Conditional result was False", 
"skipped": true
}, 
{
"ansible_loop_var": "item", 
"changed": false, 
"examined": 44211, 
"failed": false, 
"files": [
{
"atime": 1583335682.6563582, 
"ctime": 1583335657.5443044, 
"dev": 64768, 
"gid": 0, 
"gr_name": "root", 
"inode": 8984071, 
"isblk": false, 
"ischr": false, 
"isdir": true, 
"isfifo": false, 
"isgid": false, 
"islnk": false, 
"isreg": false, 
"issock": false, 
"isuid": false, 
"mode": "0755", 
"mtime": 1583335657.5443044, 
"nlink": 2, 
"path": "/tmp/erverfile_ouput", 
"pw_name": "root", 
"rgrp": true, 
"roth": true, 
"rusr": true, 
"size": 6, 
"uid": 0, 
"wgrp": false, 
"woth": false, 
"wusr": true, 
"xgrp": true, 
"xoth": true, 
"xusr": true
}
], 
"invocation": {
"module_args": {
"age": null, 
"age_stamp": "mtime", 
"contains": null, 
"depth": null, 
"excludes": null, 
"file_type": "directory", 
"follow": false, 
"get_checksum": false, 
"hidden": false, 
"paths": [
"/usr"
], 
"patterns": [
"erverfile_ouput"
], 
"recurse": true, 
"size": null, 
"use_regex": false
}
}, 
"item": {
"activ": 1, 
"nombre": "server04", 
"sen_num": 4
}, 
"matched": 1, 
"msg": ""
}
]
}
}

我想要获得"路径":"/tmp/serverfile_ouput",">

战术手册是:

- name: Find erverfile_ouput
find:
paths: /tmp
patterns: '*erverfile_ouput'
recurse: yes
file_type: directory
register: registeroutput
when: "{{ item.activ }} == 1"
loop: "{{ sondasvars }}"
tags:
- move
- debug:
var: "{{ registeroutput.results.files|map(attribute='path')|list }}"
when: "{{ item.activ }} == 1"
loop: "{{ sondasvars }}"

我试着使用"地图"过滤器,但无法找到路径。

你能帮我吗?

类似链接:如何过滤Ansible';查找';输出

BR,

您必须给出以下

- debug:
msg: "{{ item.files|map(attribute='path')|list }}"
with_items: "{{registeroutput.results}}"

首先,感谢您的回答。

[警告]:从test.yml第2行第列构造映射时3,发现一个重复的dict密钥(当(。仅使用上次定义的值。

错误!任务中的重复循环:项目

错误出现在"test.yml"中:第22行,第3列,但可能是文件中的其他位置,具体取决于确切的语法问题。

违规行似乎是:

  • 调试:^此处

试着用你的指示启动剧本,但你做不到,因为你使用了2个循环。我的剧本有一个第一个循环来检查文件(vars_files(中的一些变量

BR

最新更新