Zmagam się ze wzorem wciągającym spisy zapasów w szablonach Ansaly, proszę o pomoc. :)Pętla z pytaniami przez zmienne grupowe w szablonie
Instaluję serwer monitorowania i chcę móc automatycznie dostarczać serwery za pomocą Ansible. Walczę z pętlami w szablonie, aby mi to umożliwić.
Moja soluition semi-working tej pory jest w playbook który wywołuje zadanie szablon mam:
monitoringserver.yml
vars:
servers_to_monitor:
- {cname: web1, ip_address: 192.168.33.111}
- {cname: web2, ip_address: 192.168.33.112}
- {cname: db1, ip_address: 192.168.33.211}
- {cname: db2, ip_address: 192.168.33.212}
template.yml
all_hosts += [
{% for host in servers_to_monitor %}
"{{ host.cname }}{{ host.ip }}|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
{% endfor %}
]
Ale to ISN To idealne rozwiązanie, ponieważ nie mogę zdefiniować innego adresu IP dla różnych monitorowanych serwerów. Jak zrobili to inni ludzie? Jestem pewien, że to musi być trywialne, ale mój mózg zmaga się ze składnią.
Dzięki
Alan
EDIT: Do wyjaśnienia powstałej szablon wygląda mniej więcej tak:
all_hosts += [
"web1|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"web2|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"db1|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
"db2|cmk-agent|prod|lan|tcp|wato|/" + FOLDER_PATH + "/",
]
Chciałbym Czy wartości web1/web2/DB1/db2 być różne w zależności od tego, czy używam pliku inwentaryzacji produkcji, czy pliku inwentaryzacji rozwoju.
mógłbyś dodać co chcesz rzeczywisty wynik to być? –
Dzięki Ramon, dodano edycję w celu wyjaśnienia :) –
W pewnym sensie udało mi się obejść to teraz tworząc dwa group_var dirs monitor-dev i monitor-pub, a następnie używając książki gry wykorzystuję rolę all oraz plik inwentaryzacji dla produkcja wywołująca konkretne grupy vars. Nie wydaje się jednak całkiem odpowiedni :) –