Ansible 嵌套变量正则表达式搜索
Ansible Nested Variable Regex search
我们如何使用 Ansible 嵌套变量进行通配符搜索?
YAML
test:
name:
address:
zipcode: 12345
Ansible 模板变量
{{ test[name][addre*].zipcode }}
How do we do a wildcard search with Ansible nested variable?
- debug:
msg: >-
{{ test.name
| dict2items
| selectattr("key", "match", "addr.*")
| map(attribute="value.zipcode")
| list }}
其中 dict2items
展开了 name
的子级,允许根据 key dict
,如您所见,这通常是不可能的
然后我们现在有一个匹配 {"key": "address1234", "value": {"zipcode": "11111"}}
结构的列表,所以如果你想要所有这些结构的 zipcode
字段,只需进入 value
dict 并拉出它zipcode
字段。
最后的 list
是一个让步,因为 map
生成一个 python 生成器,而不是一个实际的列表
我们如何使用 Ansible 嵌套变量进行通配符搜索?
YAML
test:
name:
address:
zipcode: 12345
Ansible 模板变量
{{ test[name][addre*].zipcode }}
How do we do a wildcard search with Ansible nested variable?
- debug:
msg: >-
{{ test.name
| dict2items
| selectattr("key", "match", "addr.*")
| map(attribute="value.zipcode")
| list }}
其中 dict2items
展开了 name
的子级,允许根据 key dict
,如您所见,这通常是不可能的
然后我们现在有一个匹配 {"key": "address1234", "value": {"zipcode": "11111"}}
结构的列表,所以如果你想要所有这些结构的 zipcode
字段,只需进入 value
dict 并拉出它zipcode
字段。
最后的 list
是一个让步,因为 map
生成一个 python 生成器,而不是一个实际的列表