Ansible/jinja2: 在if条件中使用过滤结果

Ansible/jinja2: Use filter result in if condition

是否可以在 ansible playbook 的条件中使用 Jinja2 过滤器的结果?

我正在尝试让它工作,但没有成功:

{% if (item | ipv4) %}{{ item }}{% else %}{{ lookup('dig', item) }}{% endif %}}

我当前测试中的 item 设置为 localhost(并且可以是任何其他私人或 public 域) .

应该这样做:如果 item 是一个 IPv4 地址,则应该返回地址,否则它应该是 "converted"(DNS 查找 dig) 到 IPv4 地址 - 但它总是返回主机名。

有什么想法吗?

提前致谢 马蒂亚斯

尝试

{{ item if (item | ipv4) else lookup('dig',item) }}