温馨提示:本文翻译自stackoverflow.com,查看原文请点击:json - ansible
ansible json loops key-pair fact

json - Ansible

发布于 2020-04-09 11:51:05

我已经设定了一个事实

set_fact:
  props: "{{ parse_result.stdout | from_json }}"

事实看起来像这样:

{
    "changed": false,
    "ansible_facts": {
        "props": [
            {
                "build_number": "1.0.0.2",
                "build_name": "AppXYZ"
            },
            {
                "build_number": "1.2.0.2",
                "build_name": "AppABC"
            }
        ]
    },
    "_ansible_no_log": false
}

我想遍历事实并处理每组build_name和build_number。我已经尝试了以下代码,但有时会抛出类似“ ansible.utils.unsafe_proxy.AnsibleUnsafeText对象”的错误,但没有属性“ build_definition_name”。我究竟做错了什么?

my_deploy_module:
  build_name: "{{ item.build_name }}"
  build_number: "{{ item.build_number }}"
with_items: "{{ props }}"

查看更多

提问者
TDN
被浏览
95
TDN 2020-02-01 12:47

我在这篇文章中找到了自己的问题的答案:

https://serverfault.com/questions/927855/ansible-loop-over-custom-facts

语法如下:

my_deploy_module:
  build_name: "{{ item.build_name }}"
  build_number: "{{ item.build_number }}"
with_items: "{{ props | json_query('[*]') | flatten }}"