Ansible Parse JSON Array из реестра

Связанное сообщение: ответ на ответный анализ json-массива от api < / em>

У меня есть плейлист Ansible, в котором регистрируется возвращаемая переменная:

- name: Create Instance
ec2_instance:
  aws_access_key: "{{access_key}}"
  aws_secret_key: "{{secret_key}}"
  key_name: ***
  instance_type: t2.micro
  security_group: ***
  image_id: ami-39f8215b
  region: ***
register: details

Итак, details - это объект JSON, подобный этому:

{
"details": {
    "changed": false, 
    "changes": [], 
    "failed": false, 
    "instance_ids": [
        "i-1111abcde"
    ],
...
}

Все, что я хочу сделать, это написать текстовый файл с каждым instance_id:

i-1111abcde

Я пробовал все следующее, но ничего не работает:

debug:
  var: item
with_items: details['instance_ids']

debug:
  var: item.item
with_items: details['instance_ids']

debug:
  var: details.instance_ids
with_items: details
# This works, but prints the entire JSON array...

Решение

- name: Debug Info
debug:
  var: item
loop: "{{details.instance_ids}}"

- name: Write Temp File
lineinfile:
  path: /tmp/temp.txt
  line: "{{ item }}"
loop: "{{ details.instance_ids }}"

Примечание. loop - это более современная концепция Ansible, которая отличается от with_items или with_*.


person A. Gardner    schedule 16.07.2018    source источник
comment
Пожалуйста, переместите свое решение к собственному ответу, спасибо.   -  person Cœur    schedule 16.07.2018


Ответы (1)


Решение

- name: Debug Info
  debug:
    var: item
  loop: "{{details.instance_ids}}"

- name: Write Temp File
lineinfile:
  path: /tmp/temp.txt
  line: "{{ item }}"
loop: "{{ details.instance_ids }}"

Примечание: цикл - это более современная концепция Ansible, которая отличается от with_items или with_ *

person A. Gardner    schedule 20.07.2018