【问题标题】:Unable to check variable greater than condition in Ansible jinja2 template无法在 Ansible jinja2 模板中检查大于条件的变量
【发布时间】:2020-03-26 20:26:42
【问题描述】:

我的 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条件吗?

【问题讨论】:

    标签: templates ansible conditional-statements comparison jinja2


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 2018-02-06
      • 1970-01-01
      相关资源
      最近更新 更多