拷贝模板时报错:AnsibleError: template error while templating string: Missing end of comment tag.
原因
shell脚本中地{#和jinja中的语法comment tag相同,而且只有一半,导致无法渲染导致。
解决
在有语法冲突的地方使用组合标签{% raw %} 、{% endraw %}包裹起来,例如:
bash
{% raw %}
if [[ ${#info_array[*]} -ne 3 ]];then
echo "ERROR:${info} Format Error,Please Excute:bash $0 -h" && exit 1
fi
{% endraw %}
拷贝模板时报错:AnsibleError: template error while templating string: expected token ':', got '}'. String
错误的写法:
bash
{% if {{ db_type}} == "mysql" %}
a=1
{% endif %}
正确的写法:
bash
{% if db_type == "mysql" %}
a=1
{% endif %}
总结:在if,for等条件判断语句中变量不需加{{ }}