ansible - 重建数据库输出,以便它可以用作查找值的字典

时间:2017-11-26 17:00:09

标签: ansible jinja2

我用两个搜索字符串(带有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,但只有第一个设置了。

1 个答案:

答案 0 :(得分:1)

如果原始字典是res,那么:

{{ (res | map(attribute='result') | selectattr('value','equalto', ansible_distribution) | first).documentId }}