Po úspešnom využití šablóny pre nginx.conf.j2 v predchádzajúcom príspevku
som sa hlbšie ponáral a pokúsil som sa využiť šablónu virtuálnych hostov
dostupnú v vhosts.j2 skopírovaním šablóny a jej lokálnym referencovaním
(to isté, čo som predtým urobil so šablónou nginx.conf spomínanou vyššie)
takto:
nginx-vhosts:
- template: "{{ playbook_dir }}/templates/vhost.j2"
Toto však pri spustení playbooku viedlo k nasledujúcej chybe:
"msg": "AnsibleUndefinedVariable: 'nginx_listen_ipv6' is undefined"
Zároveň som narazil na toto pomerne rozsiahle vlákno o Ansible s dosť zábavným komentárom:
MaxHedrome
Vždy hovorím to isté, pozrite sa na Geeelingguysov github. Dajte hviezdu a prispievajte do jeho repozitárov
Tak som, celkom prirodzene, urobil.
Dôvody pre lokálnu šablónu #
Rozhodol som sa znova skopírovať a referencovať lokálnu šablónu namiesto použitia upstream šablóny z dôvodov, z ktorých niektoré sú podobné tým, ktoré som opísal v predchádzajúcom príspevku:
- Šablóna
vhost.j2zrejme obsahuje chybu, ktorá nemusí byť opravená upstream - Umožňuje jednoduchšie prispôsobenie, keď požadované premenné nie sú vystavené
- Kvôli niektorým zmenám v Ansible, dokumentované rozširovanie šablón zrejme už nie je podporované
Mal som pocit, že zostať pri upstream ani nie je možné, takže vlastná lokálna kópia s menšími úpravami bola zvolená ako cesta najmenšieho odporu.
Toto je 47. príspevok série #100daystooffload.