Перебирайте json и строку concat в значение - PullRequest
0 голосов
/ 26 декабря 2018

Я пытаюсь создать refind JSON из вывода JSON, полученного из AWS. Это вывод из AWS (я сократил количество строк):

{
    "Regions": [
        {
            "Endpoint": "ec2.ap-south-1.amazonaws.com",
            "RegionName": "ap-south-1"
        },
        {
            "Endpoint": "ec2.eu-west-3.amazonaws.com",
            "RegionName": "eu-west-3"
        }
    ]
}

И это мойansible playbook:

- hosts: localhost
  gather_facts: false
  tasks:
  - name: JSON Me
    shell: 'aws --profile="{{ AWS_PROFILE }}" --region="{{ AWS_REGION }}" ec2 describe-regions'
    register: regions_out

  - set_fact:
      regions: "{{ regions_out.stdout | from_json }}"

  - name: print
    shell: echo '"{{ item }}" = abc'
    loop: "{{ regions | json_query('Regions[*].RegionName') }}"

Я пытаюсь добиться вывода RegionName и конкретного текста (= abc)

Однако myoutput выглядит так:

changed: [localhost] => (item=ap-south-1)
changed: [localhost] => (item=eu-west-3)

Попытка фильтрации с помощью | join(" = abc") дала ошибку, так как вывод стал одной длинной строкой вместо списка.

Буду признателен за предложения, спасибо

1 Ответ

0 голосов
/ 26 декабря 2018
- hosts: localhost
  gather_facts: false
  tasks:
  - name: JSON Me
    shell: 'aws --profile="{{ AWS_PROFILE }}" --region="{{ AWS_REGION }}" ec2 describe-regions'
    register: regions_out

  - set_fact:
      regions: "{{ regions_out.stdout | from_json }}"

  - name: print
    debug:
      msg: "{{ item }} = \"ami-...\""
    loop: "{{ regions | json_query('Regions[*].RegionName') }}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...