ansible - l oop через факт и обрабатывать каждый набор значений - PullRequest
0 голосов
/ 31 января 2020

Я установил факт

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
}

Я хочу l oop через факт и обработать каждый набор build_name и номер сборки. Я пробовал приведенный ниже код, но иногда он приводил бы к ошибке «ansible .utils.unsafe_proxy.AnsibleUnsafeText object» не имеет атрибута «build_definition_name». Что я делаю не так?

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

1 Ответ

0 голосов
/ 01 февраля 2020

Я нашел ответ на свой вопрос в этом посте:

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 }}"
...