如何使用 Ansible 遍历二维列表?
How to iterate through two dimensions list with Ansible?
我有一个这样的变量:
"files": {
"results": [
{
"files": [
{
"path": "/etc/file1.xml",
},
{
"path": "/etc/file2.xml",
}
]
},
{
"files": [
{
"path": "/etc/file2.xml",
}
]
},
{
"files": []
}
}
}
如何遍历所有路径?
您不需要迭代二维来获取所有路径。
使用 map 过滤器来减少您的原始列表。
要从您的示例中获取简单的路径列表:
- debug: msg="{{ files.results | map(attribute='files') | sum(start=[]) | map(attribute='path') | list }}"
我有一个这样的变量:
"files": {
"results": [
{
"files": [
{
"path": "/etc/file1.xml",
},
{
"path": "/etc/file2.xml",
}
]
},
{
"files": [
{
"path": "/etc/file2.xml",
}
]
},
{
"files": []
}
}
}
如何遍历所有路径?
您不需要迭代二维来获取所有路径。
使用 map 过滤器来减少您的原始列表。
要从您的示例中获取简单的路径列表:
- debug: msg="{{ files.results | map(attribute='files') | sum(start=[]) | map(attribute='path') | list }}"