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) }}
是否可以在 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) }}