Pozri tiež časť 1 a časť 2.

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.j2 zrejme 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.