Это усеченная версия:
Код: Выделить всё
ok: [host] =>
msg:
response:
'@status': success
result:
enabled: 'yes'
group:
local-info:
state: active
state-duration: '31528713'
state-sync: Complete
mode: Active-Passive
peer-info:
state: passive
state-duration: '23461633'
running-sync: synchronized
running-sync-enabled: 'yes'
Код: Выделить всё
- name: Set facts for output...
ansible.builtin.set_fact:
primary_status_xml: "{{ ha_status_primary.content | ansible.utils.from_xml }}"
Код: Выделить всё
- name: Set further facts...
ansible.builtin.set_fact:
ha_enabled: "{{ primary_status_xml.response.result.enabled }}"
ha_mode: "{{ primary_status_xml.response.result.group.mode }}"
Код: Выделить всё
- name: Set further facts...
ansible.builtin.set_fact:
primary_ha_state: "{{ primary_status_xml.response.result.group.local-info.state }}"
secondary_ha_state: "{{ primary_status_xml.response.result.group.peer-info.state }}"
Я нашел документацию, которая показывает, что дефис указывает на следующий элемент в списке, что может быть причиной проблемы:
https://docs.ansible.com/projects/ansib ... ould-i-use
Но представленный пример также не работает, когда я меняю образец на:
Код: Выделить всё
- name: Set further facts...
ansible.builtin.set_fact:
primary_ha_state: "{{ primary_status_xml[response][result][group]['local-info'][state] }}"
secondary_ha_state: "{{ primary_status_xml[response][result][group]['peer-info'][state] }}"
Подробнее здесь: https://stackoverflow.com/questions/798 ... dictionary
Мобильная версия