templates - 无法在 Ansible jinja2 模板中检查大于条件的变量
问题描述
我的 jinja2 模板为变量生成正确的值
{{ vars[fruit | join("")] | default('ERR') }}
变量fruit 的值为83.6,它由Ansible 的模板模块打印。
我想在 jinja2 模板中写一个 if 条件,我想检查变量 fruit 的值是否大于 70
{% if ( vars[fruit | join("")] | int ) > 70 %}
超过 70 个
{% 万一 %}
但是,当我期望它成功时,“如果”条件失败了。
我还尝试了以下方法:
{% if ( vars[fruit | join("")] | int > 70 ) %}
我也试过
{% if vars[fruit | join("")] | int > 70 %}
但是,他们都没有工作。你能告诉我需要做什么来满足if条件吗?
解决方案
int
过滤器不接受带点的字符串。您应该通过使用round
过滤器将其向下舍入来将其转换为浮点数:
{% if ( vars[fruit | join("")] | round(method='floor')) > 70 %}
推荐阅读
- java - InputMismatchException 帮助,如何覆盖?
- linux - 当gdb附加到tracee时tracee会得到SIGSTOP做什么
- pytorch - Google Colab 最近引发错误 ModuleNotFoundError: No module named 'google.cloud.storage.retry'
- python - 从列类型对象 pandas 中删除为空的行
- php - Laravel 控制器存储以驼峰格式接收的数据
- python - 在 Plotly Dash 中结合 DateRangePicker 和 Dropdown
- spring-webflux - Spring Webflux HttpResponse
- java - 为什么 @OnDelete(action = OnDeleteAction.CASCADE) 在删除 InheritanceType.JOINED 时不删除父表条目
- google-cloud-platform - 虚拟机到 Google Cloud Shell 带宽费用
- python - 用于多行替换字符串的正则表达式,然后放入熊猫数据框中