Q: «Как сравнить два словаря с одинаковыми ключами?»
A: Например, приведенный ниже цикл сравнивает ключи, если нетРазница между исходным и целевым наборами ключей.
vars:
source_list:
MyFlag1: true
myFlag3: true
MyFlag2: false
target_list:
myFlag3: true
MyFlag1: false
MyFlag2: false
tasks:
- debug:
msg: "{{ item }} is {{ (source_list[item] == target_list[item])|
ternary('OK', 'KO') }}"
loop: "{{ source_list.keys()|sort }}"
when: "source_list.keys()|
symmetric_difference(target_list.keys())|
length == 0"
дает
"msg": "MyFlag1 is KO"
"msg": "MyFlag2 is OK"
"msg": "myFlag3 is OK"
В целях отладки можно сравнивать ключи раньше. Например
- debug:
msg: |
{% if source_list.keys()|symmetric_difference(target_list.keys())|length == 0 %}
True
{% else %}
False
{% endif %}