-1

使用 ANSIBLE:我从 url 获取 json 响应并打印响应,但无法打印特定的键/值。(请参阅 json 响应)在我的脚本中我会传递服务,所以我只想在标签下打印特定版本的服务。例如,我会将 abc 作为参数传递给 ansible playbook,然后我想在该标签下打印版本。我尝试了 json 查询过滤器,但无法得到这个。

- name: Get url response
  uri:
    url: http://localhost:8500/myurl...
    return_content: yes
  register: json_response

- name: print json_response
  debug:
    var: json_response

- name: print the response
  set_fact:
    msg: "{{ json_response | from_json| json_query('Tags['build=*')}}"

我的 json 响应是这样的。

"json": {
        "abc": {
            "Tags": [
                "version=3.5"
            ]
        }, 
        "xyz": {
            "Tags": [
                "version=4.6.2" 
            ]
        }, 
        "asd": {
            "Tags": [
                "version=9.1.2" 
            ]
        }
}

任何帮助将不胜感激。

4

1 回答 1

0

评论中的回答:

这里关于 ansible 的唯一事情是您需要将json_query过滤器应用于json_response.json. 至于 JMESPath 表达式,请花一些时间在jmespath.org上弄清楚表达式本身。

于 2017-06-19T06:05:40.027 回答