首页 > 解决方案 > if else 和 if else 在 ansible 模板中不起作用

问题描述

我正在根据设置为真或假的变量检查推送数据。我的 json 文件变量文件有 { "isfs" : True }

并且我的模板(t2.j2)具有以下条件

{% if  '{ isfs | d() | bool }' -%} 
  <perform operation >
{% else -%}
  <perform 2 operation

每次执行时,<perform opertaion >即使更改 json 文件的值"isfs": False

请提出一些建议。

我尝试了 d(true) 并且我尝试了 elif 条件对我没有任何帮助

标签: ansibledjango-templates

解决方案


只需测试变量。这应该做你想做的。任何 True 或 true 值都应该返回 true。

{% if isfs %}

如果需要,请投射:

{% if isfs | bool %}

编辑:我想我误解了你正在评估一个包含'{“isfs”:True}'的json文件。您需要解析 json 文件以获取值。考虑到 json 文件内容在 json_file 变量中:

{% if json_file.isfs %}

推荐阅读