使用Ansible迭代从Docker API返回的json

您好我有一个像下面的剧本,我想parsing从dockerAPI的JSON输出,并没有运气呢。 Id喜欢parsingId字段,并将其用作docker exec的input。 我的最终结果是获取所有运行的容器的报告以及它们的环境variables。

- hosts: devtest.log.economicalinsurance.com tasks: - name: Get containers command: curl --insecure --cert-type PEM --cert /etc/docker/server-cert.pem --key /etc/docker/server-key.pem "https://127.0.0.1:2376/v1.22/containers/json?all=1" register: containers - debug: msg="{{ containers.stdout }}" - name: Get ENV Vars command: docker exec -t {{ item }} printenv with_items: "{{ containers.stdout|json_query|('Id[*]'') }}" 

请使用这样的语法:

 ...stdout | from_json | json_query('[*].Id') 

重要的是通过用[*]开始查询遍历json数组。

有关详细信息,请参阅http://docs.ansible.com/ansible/latest/playbooks_filters.html#json-query-filter