可能在角色vars文件中使用Jinja2表达式

问题描述 投票:0回答:1

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

所以说我有:

az:
 az1: foo
 az2: bar
 az3: foobar

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

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

谢谢。

ansible jinja2 ansible-2.x ansible-template
1个回答
0
投票

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

您可以改为执行以下操作:

az:
 az1: foo
 az2: bar
 az3: foobar

floating_ip_pool: "{% if target_az == az['az1'] %}bar{% endif %}"
© www.soinside.com 2019 - 2024. All rights reserved.