У меня есть книга с входным словарём. Я хочу выполнить задачу для 4 «элементов», только если они существуют в словаре.
Я сделал простую книгу для тестирования
---
- hosts: 127.0.0.1
gather_facts: False
vars:
my_dict:
level1:
level10: niveau_10
level2: niveau_2
tasks:
- name: display dictionary content
debug: var=my_dict
- name: iterate over dict
debug: var="{{item}}"
with_items:
- my_dict.level2
- my_dict.level1.level10
- my_dict.level3
when: item is defined
Когда я выполнял свою книгу, я ожидал, что нетчтобы увидеть какие-либо выходные данные для my_dict.level3, но, похоже, как мне правильно выполнить мой тест?
bash$ ansible-playbook -i hosts test_item.yml
PLAY [127.0.0.1] **************************************************************************************************
TASK [display dictionary content] *********************************************************************************
ok: [127.0.0.1] => {
"my_dict": {
"level1": {
"level10": "niveau_10"
},
"level2": "niveau_2"
}
}
TASK [iterate over dict] ******************************************************************************************
ok: [127.0.0.1] => (item=my_dict.level2) => {
"item": "my_dict.level2",
"my_dict.level2": "niveau_2"
}
ok: [127.0.0.1] => (item=my_dict.level1.level10) => {
"item": "my_dict.level1.level10",
"my_dict.level1.level10": "niveau_10"
}
ok: [127.0.0.1] => (item=my_dict.level3) => {
"item": "my_dict.level3",
"my_dict.level3": "VARIABLE IS NOT DEFINED!"
}
PLAY RECAP ********************************************************************************************************
127.0.0.1 : ok=2 changed=0 unreachable=0 failed=0
Спасибо за ваши отзывы.
S,