Я думаю, что вас раздражает тот факт, что «azure_dnsrecordset» содержит список словарей.Существует только один, но я предполагаю, что в других условиях их может быть несколько.Это выполнит то, что вы просили, но если у вас есть более одной записи, вы можете обнаружить, что ваши требования более подробны, чем в этом вопросе:
# Presumes that you have a 'result_dns' variable set in Ansible containing the JSON
- set_fact:
ip_s: "{{ ( ip_s | default([]) ) + [ item.1.ipv4Address ] }}"
with_subelements:
- "{{ result_dns.ansible_facts.azure_dnsrecordset }}"
- properties.ARecords
- debug:
msg: "{{ ip_s }}"
with_subelements , извлекает ключи изсписок словарей.
Это просто приведет к созданию списка IP-адресов, который может оказаться бесполезным в случае, если возвращено несколько наборов записей.Если вы сделаете что-то вроде:
ip_s: "{{ ( ip_s | default([]) ) + [ { 'etag': item.0.etag, 'ip_address': item.1.ipv4Address } ] }}"
, это даст вам список словарей, содержащих ключи 'etag' и 'ip_address', что даст вам возможность идентифицировать наборы записей, из которых они пришли.
Надеюсь, достаточно, чтобы вы начали.