Это содержимое реестра:
- debug:
var: vmfacts.virtual_machines
ok: [localhost] => {
"vmfacts.virtual_machines": {
"2k12r2-k11": {
"guest_fullname": "Microsoft Windows Server 2012 (64-bit)",
"ip_address": "10.0.1.20",
"mac_address": [
"00:50:56:00:00:20"
],
"power_state": "poweredOn",
"uuid": "421d5210-8a64-2d60-8b44-02de952600d1"
},
ниже работает нормально, но мне нужно значение uuid сверху
- shell: "echo {{ item }}"
with_items: "{{ vmfacts.virtual_machines }}"
Кажется, не удается расшифровать синтаксис, похоже, ничего из этого не работает:
"echo {{item.uuid}}" "echo {{item.0.uuid}}" "echo {{item [0] .uuid}}"
Как правильно получить доступ к значению uuid?
vmfacts.virtual_machines
это dict
.
with_items
когда применяется к dict
выполняет итерацию только по своим ключам.
Так что либо:
- shell: "echo {{ vmfacts.virtual_machines[item].uuid }}"
with_items: "{{ vmfacts.virtual_machines }}"
Или лучше использовать with_dict
:
- shell: "echo {{ item.value.uuid }}"
with_dict: "{{ vmfacts.virtual_machines }}"