ansible - 可以在角色变量文件中使用 Jinja2 表达式
问题描述
我想知道是否可以在 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 %}"
推荐阅读
- python - 如何使用 tkinter 检查小部件是否是另一个小部件的后代
- python - 训练数据转换为特征向量,但测试数据是字符串或文本
- java - Spring Security oauth2 客户端 - Twitter 的问题
- openlayers - 单击 openlayers 概览图按钮会给出异常结果
- c++ - 遍历 col 但不遍历 row
- r - 如何在绘图中添加图例
- java - 如果语句不与所需的字符串进行比较,并且如果变量值与比较的字符串相同,则不能与其他字符串一起使用
- android - 我想将 json 发送到我的 API 并接收 Json 形式的响应,但它显示 400 bad request
- c++ - 尝试在 std::map 中插入抽象类时没有匹配的调用函数
- dialogflow-es - 具有随机文本的 Dialogflow 复合实体