Ansible没有从dicts列表中获取值

时间:2016-06-15 12:57:11

标签: python xml ansible ansible-playbook

我需要: - 使用调试'位置'的值来回显 - 检查'位置'包含特定单词(整个单词很好)

基于xml module生成的输出:

ok: [127.0.0.1] => {
    "apps": {
        "actions": {
            "ensure": "present",
            "namespaces": {},
            "xpath": "/server/application"
        },
        "changed": false,
        "count": 1,
        "matches": [
            {
                "application": {
                    "context-root": "helloworld",
                    "location": "text.zip",
                }
            }
        ],
        "msg": 1
    }
}
/

2 个答案:

答案 0 :(得分:3)

在任务中注册变量,然后使用when子句创建新任务。

  - Existing XML task
    xml: (skipping)
    register: myvar

  - Check for filename
    debug: var=item.application.location
    with_items: myvar.apps.matches

编辑:来自评论,因为匹配是一个数组,您可能想要遍历数组。

答案 1 :(得分:2)

- debug:
    var: item.application
  when: item.application.location == "foobar"
  with_items: "{{ apps.matches }}"