Мне нужно написать сценарий оболочки, основанный на серии условий «если и для» (вложенных), написанных в jinja2 (для использования в ansible).
Проблема в том, что ошибка " неопределенная переменная: webroot"возвращается, и я не понимаю, почему.
Это код jinja2 (в папке templates ):
#!/bin/bash
certbot certonly -n --webroot
{% for hosting in hostings %}
{% if inventory_hostname in hosting.servers %}
-w {{ hosting.webroot }}
{% for domain in hosting.domains %}
-d {{ domain }}
{% endfor %}
{% endif %}
{% endfor %}
#-m {{ hosting.letsencrypt_email }} --agree-tos
-m info@email.it --agree-tos
Переменная «webroot» существует в vars / main.yml, и это та же переменная «Servers», которая имеет правильную область действия.
vars / main.yml file:
hostings:
- name: 'Wottts'
servers:
- 'w2.test.it'
- 'w.test.it'
- 'w.yat.it'
template: 'template.conf.j2'
webroot: '/var/www/test/html'
domains:
- 'pippus.invalid'
- 'www.pippus.invalid'
Ошибка фатальная: [host.name.it]: FAILED!=> {"change": false, "msg": "AnsibleUndefinedVariable: 'webroot' не определен"}
Спасибо за любую помощь / предложение.