如何使用Ansible遍历二维列表?
我有一个这样的变量:如何使用Ansible遍历二维列表?,ansible,ansible-playbook,Ansible,Ansible Playbook,我有一个这样的变量: "files": { "results": [ { "files": [ { "path": "/etc/file1.xml", }, { "path": "/etc/file2.xml", }
"files": {
"results": [
{
"files": [
{
"path": "/etc/file1.xml",
},
{
"path": "/etc/file2.xml",
}
]
},
{
"files": [
{
"path": "/etc/file2.xml",
}
]
},
{
"files": []
}
}
}
如何迭代所有路径?您不需要迭代二维来获得所有路径。
使用过滤器减少原始列表 要从示例中获取路径的简单列表,请执行以下操作:
- debug: msg="{{ files.results | map(attribute='files') | sum(start=[]) | map(attribute='path') | list }}"
有没有一种方法可以在查找插件时使用较小的行
展平
?失败,我有以下错误:模板字符串时出现模板错误:没有名为“map”的筛选器map
是标准的jinja2筛选器。您的设置或非常古老的Ansible版本有问题。我发现此问题:。我觉得地图是在jinja2.7中引入的,我正在使用jinja2.6.1。