Переставить ansible выход - PullRequest
       8

Переставить ansible выход

1 голос
/ 25 февраля 2020

Я отлаживаю переменную

- debug:
    msg: "{{ result }}"

и получаю следующий вывод.

ok: [localhost] => {
    "msg": [
        {
            "City": "LosAngeles"
        }, 
        {
            "Sate": "California"
        }, 
        {
            "region": "west-coast"
        }
     ]
}

Я хочу избавиться от всех скобок из вышеприведенного вывода и хочу вывести что-то вроде этого.

ok: [localhost] => {
    "msg": [
            "City": "LosAngeles"
            "Sate": "California"
            "region": "west-coast"
     ]
}

1 Ответ

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

Возможно использовать форматирование Jinja2 и разбивать строки. Например,

    - debug:
        msg: "{{ msg.split('\n') }}"
      vars:
        msg: |
          {% for item in result %}
          {% for k,v in item.items() %}
          {{ k }}: {{ v }}
          {% endfor %}
          {% endfor %}

дает

    "msg": [
        "City: LosAngeles", 
        "Sate: California", 
        "region: west-coast", 
        ""
    ]


Аналогичный выход может быть достигнут с помощью фильтра to_yaml . Более простая задача
    - debug:
        msg: "{{ msg.split('\n') }}"
      vars:
        msg: "{{ result|to_yaml }}"

дает

    "msg": [
        "- {City: LosAngeles}", 
        "- {Sate: California}", 
        "- {region: west-coast}", 
        ""
    ]
...