可以在角色变量文件中使用 Jinja2 表达式

Possible to use Jinja2 expressions in role vars file

我想知道是否可以在 vars 文件中使用 Jinja2 {% if %} 表达式?

所以说我有:

az:
 az1: foo
 az2: bar
 az3: foobar

{% if az == az['az1'] %}
  floating_ip_pool = bar
{% endif %}

基本上,我试图避免每次都设置这些变量,因为它们总是基于 az。

谢谢。

这不是有效的语法。必须首先将 vars 文件解析为 YAML 文档,引入 Jinja 语法会导致不再有效的 YAML。

您可以改为这样做:

az:
 az1: foo
 az2: bar
 az3: foobar

floating_ip_pool: "{% if target_az == az['az1'] %}bar{% endif %}"