无法在 Ansible jinja2 模板中检查大于条件的变量

Unable to check variable greater than condition in Ansible jinja2 template

提问人:Ashar 提问时间:3/27/2020 更新时间:3/27/2020 访问量:1780

问:

我的 jinja2 模板为变量生成正确的值

{{ vars[fruit | join("")] | default('ERR') }}

变量 fruit 的值为 83.6,由 Ansible 的模板模块打印。

我想在 jinja2 模板中编写一个 if 条件,我想在其中检查变量的值 果实70多

{% if ( vars[fruit | join("")] | int ) > 70 %}

超过 70

{% endif %}

但是,当我期望它成功时,“如果”条件会失败。

我还尝试了以下方法:

{% if ( vars[fruit | join("")] | int  > 70 ) %}

我也试过了

{% if vars[fruit | join("")] | int  > 70 %}

但是,他们都没有奏效。您能否让我知道需要做些什么来满足 if 条件?

模板 ansible 条件语句 比较 jinja2

评论


答:

6赞 blhsing 3/27/2020 #1

筛选器不接受带点的字符串。您应该通过使用过滤器将其向下舍入来将其转换为浮点数:intround

{% if ( vars[fruit | join("")] | round(method='floor')) > 70 %}