我有一个与以下内容类似的yml列表:
name_ips:
rr: [
{
"name": "db1-137.com",
"ip": "1.1.1.1"
},
{
"name": "core1-137.com",
"ip": "2.2.2.2"
},
{
"name": "core0-139.com",
"ip": "3.3.3.3"
},
{
"name": "db0-147.com",
"ip": "4.4.4.4"
}
]
使用ansible,我要在此列表中选择与正则表达式匹配的name
值的项目:
regexp: ".*137.com"
我的最终结果应类似于以下内容,我希望可以使用set_fact
模块进行设置:
[
{
"name": "db1-137.com",
"ip": "1.1.1.1"
},
{
"name": "core1-137.com",
"ip": "2.2.2.2"
}
]
如何实现此子列表选择操作?
更新:
我发现如果输入确切的名称,我可以返回一个值:
- debug: msg="{{ name_ips | json_query(\"rr[?name=='core0-139.com']\") }}"`
返回:
{
"name": "core0-139.com",
"ip": "3.3.3.3"
}
这是一个开始,但是我仍然想使用正则表达式进行搜索。