如何使用匹配值在ansible中进行Json查询

如何使用匹配值在ansible中进行Json查询,json,ansible,jinja2,json-query,Json,Ansible,Jinja2,Json Query,有人能告诉我这是否可行吗? 我有以下清单 list: - dev - uat 我想遍历上面的列表,从下面的输出中获取相应的IpAddress的值 { "Tags": [ { "ResourceType": "instance", "ResourceId": "i-8dh7435490fjksfd",

有人能告诉我这是否可行吗? 我有以下清单

list:
  - dev
  - uat
我想遍历上面的列表,从下面的输出中获取相应的
IpAddress
的值

{
    "Tags": [
        {
            "ResourceType": "instance", 
            "ResourceId": "i-8dh7435490fjksfd", 
            "Environment": "production", 
            "IpAddress": "10.0.0.8"
        }, 
        {
            "ResourceType": "instance", 
            "ResourceId": "i-8dh7435dsj89jfe", 
            "Environment": "dev", 
            "IpAddress": "10.0.0.3"
        },
        {
            "ResourceType": "instance", 
            "ResourceId": "i-8dsdj456ovfvfd", 
            "Environment": "uat", 
            "IpAddress": "10.0.0.7"
        }
    ]
}
这是我正在寻找的输出

[
 "10.0.0.3",
 "10.0.0.7"
]
我正在尝试使用这个过滤器
Tags | json_查询('[*].IpAddress')
。但是它给了我列表中所有的
IpAddress

例如

-hosts:localhost
变量:
我的清单:[开发,uat]
我的标签:[
{
“资源类型”:“实例”,
“资源ID”:“i-8dh7435490fjksfd”,
“环境”:“生产”,
“IpAddress”:“10.0.0.8”
}, 
{
“资源类型”:“实例”,
“资源ID”:“i-8dh7435dsj89jfe”,
“环境”:“开发人员”,
“IpAddress”:“10.0.0.3”
},
{
“资源类型”:“实例”,
“资源ID”:“i-8dsdj456ovfvfd”,
“环境”:“uat”,
“IpAddress”:“10.0.0.7”
}
]
任务:
-调试:
msg:{{myu标签| selectattr('Environment','in',myu列表)|
映射(属性='IpAddress')|列表}”
给予

msg:
- 10.0.0.3
- 10.0.0.7

恐怕json\u查询测试
包含的内容在这里不起作用。试试
selectattr
map(attribute='IpAddress'
太棒了。谢谢你,你是我的英雄:)