модель
"nodes": [{
"name": "xrv9k-r3",
"image": "xrv9k-fullk9-x-7.1.1.qcow2",
"smp": 4,
"cpu": 4000,
"ram": 8192,
"username": "admin",
"password": "cisco123"
}, {
"name": "xrv9k-r4",
"image": "xrv9k-fullk9-x-7.2.2.qcow2",
"smp": 4,
"cpu": 4000,
"ram": 8192,
"username": "admin",
"password": "cisco123"
}
...
]
проверить в лоб как-то так:
- name: "Verify that Node has mandatory fields"
assert:
that:
- "'name' in {{ node_item }} and {{ node_item['name'] != '' and node_item['name'] != None }}"
- "'image' in {{ node_item }} and {{ node_item['image'] != '' and node_item['image'] != None }}"
- "'smp' in {{ node_item }} and {{ node_item['smp'] != '' and node_item['smp'] != None }}"
- "'cpu' in {{ node_item }} and {{ node_item['cpu'] != '' and node_item['cpu'] != None }}"
- "'ram' in {{ node_item }} and {{ node_item['ram'] != '' and node_item['ram'] != None }}"
fail_msg: "{{ node_item }} requires 'name', 'image', 'smp', 'cpu' and 'ram' fields
must be populated with values"
success_msg: "{{ node_item }} is defined correctly"
loop_control:
loop_var: node_item
with_items:
- "{{ nodes }}"
и это ж пипец боль. как вы с ansible своим там живёте-то?
это ещё ассерт завезли
а nested loop без вложенных отдельных файлов с тасками - нет.
ну конечно-конечно. и всякие yaml-based поделки с императивными воркфлоу тоже не про программирование. ага.
Чё, терраформ всё-таки не стоит надрачивать ага? 🤔
стоит, только вот программировать на DSL такая себе идея Многие пробуют и после этого всем рассказывают какая это фигня ваш ansible/terraform/что-то-еще. Потому что вот никому же в голову не придет в реальном мире лезерманом пилить брёвна. И ведь можно же перепелить, там же пила есть. Только вот зачем, если есть бензопила?
Обсуждают сегодня