我必须基于jinja2(将在ansible中使用)编写的一系列“条件和条件”(嵌套)条件编写一个shell脚本。
问题是返回了错误消息“ 未定义的变量:webroot ”,我不明白为什么。
这是jinja2代码(在 templates文件夹下):
<Code to get ValidatableResponse>.htmlPath().getString("html.body.span.input.@value")
变量“ webroot”存在于vars / main.yml中,并且与正确定义范围的“服务器”变量相同。
vars / main.yml文件:
#!/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
错误是致命的:[host.name.it]:失败! => {“更改”:false,“ msg”:“ AnsibleUndefinedVariable:'webroot'未定义”}
感谢您的帮助/建议。
答案 0 :(得分:0)
我自己解决了!
问题出在倒数第二行:
...
{% endfor %}
#-m {{ hosting.letsencrypt_email }} --agree-tos
-m info@email.it --agree-tos
似乎以“ #”字符开头的行是问题所在,将其删除即可正确识别变量。