You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ansible模板渲染报错expected token 'end of statement block'求助

报错触发原因

该报错属于Jinja2模板语法错误,Ansible的配置模板渲染底层基于Jinja2实现,Jinja2的多分支条件判断不支持{% else if %}写法,必须使用{% elif %}作为多分支判断的关键字。
你编写的{% else if %}语法会被模板解析器判定为else对应的语句块已经结束,后续出现的if属于未在合法语句块内的无效标记,因此抛出expected token 'end of statement block', got 'if'的错误。

修复方案

将配置中所有的{% else if %}替换为{% elif %}即可,修复后的配置如下:

abc: "{% if x == 'y' %}1{% elif x == 'z' %}2{% elif z == 'a' %}3{% endif %}"

如果需要提升长条件判断的可读性,也可以使用YAML折叠标量块改写,避免长字符串转义问题:

abc: >
  {% if x == 'y' %}
  1
  {% elif x == 'z' %}
  2
  {% elif z == 'a' %}
  3
  {% endif %}

内容的提问来源于stack exchange,提问作者akansha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 17:15:08