我用两个搜索字符串(带有with_items)查询数据库,并在变量中注册它。我用debug打印变量,得到这样的东西:
{
"result": [
{
"documentId": "653",
"value": "Ubuntu"
}
]
},
{
"result": [
{
"documentId": "652",
"value": "OracleLinux"
}
]
}
然后,我想编写一个expression来查找documentId的值, 取决于上面的字段'值',即。取决于操作系统。
换句话说,是否有可能编写一个ansible表达式,当在当前服务器上,如果{{ansible_distribution}}是'OracleLinux',它给我“652”?
还是有办法实现这一目标,即。首先做一些set_fact ...我试过但失败了,因为我试图在with_items循环中设置set_fact,但只有第一个设置了。
答案 0 :(得分:1)
如果原始字典是res
,那么:
{{ (res | map(attribute='result') | selectattr('value','equalto', ansible_distribution) | first).documentId }}