Всем привет!
Подскажите, пж, или ткните в пример, где подробно описывается, как через ansible залазить на третий и глубже уровни в json
Например в custom facts или в ansible_facts.
Вот примерный json
{
test_array_level_1:
[
{
"type": "AS",
"env": "PROD",
"friendly_name": "AS_PROD",
"test_array_level_2":
[
{
"test_key1":"test_data",
},
{
"test_key2":"test_data"
},
{
"test_key3":"test_data"
"test_array_level_3":
[
{
"test_key4_1":"data",
"test_key4_2":"data",
"test_key4_3":"data"
}
]
}
]
},
{
"type": "AS",
"env": "TEST",
"friendly_name": "AS_TEST",
},
{
"type": "DB",
"env": "PROD",
"friendly_name": "DB_PROD",
},
{
"type": "DB",
"env": "TEST",
"friendly_name": "DB_TEST",
"test_array":
[
{
"test_key1":"test_data",
}
]
}
]
}
Как наименее затратно и правильней поместить в переменную только тот элемент в массиве третьего уровня, в котором "test_key4_1" == "data1"?
Я использую
set_fact:
target_var: "{{target_var + [item.1] }}"
loop: "{{ test_array_level_1 | subelements('test_array_level_2', skip_missing=True) }}"
when: "условие"
и далее второй итерацией set_fact проваливаюсь глубже
Это правильный подход?