【发布时间】:2021-01-16 16:15:58
【问题描述】:
给定数据:
"serverName", [
serverData: [
{
"internal_ip": "10.1.1.100",
"external_ip": "172.16.1.10",
"name": "dns-1"
},
],
]
当internal_ip 与equalto 匹配时,这会提取name 值dns-1。到目前为止,一切顺利。
- debug:
msg: "{{ mydict | selectattr('internal_ip', 'equalto', '10.1.1.100') |
map(attribute='name') | list }}"
在真正的问题中,我不知道我正在搜索的 ip 地址将驻留哪种类型的 *_ip。它可能在internal_ip 下,也可能在external_ip 下,据我所知,可能还有更多选择,唯一永远存在的就是我正在搜索的实际IP 地址:'10.1 .1.100`。
所以我需要像这样进行正则表达式匹配:
- debug:
msg: "{{ mydict | selectattr('^.*$', 'equalto', '10.1.1.100') |
map(attribute='name') | list }}"
我不确定这是否可能,但这似乎是摆脱困境的方法之一。
【问题讨论】: