8

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

我试图让这个工作,但没有成功:

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

我当前测试中的item设置为localhost(并且可以是任何其他私有或公共域)。

应该这样做:如果item是 IPv4 地址,则应返回地址,否则应将其“转换”(使用dig进行 DNS 查找)为 IPv4 地址 - 但它始终返回主机名。

任何想法?

提前感谢马蒂亚斯

4

1 回答 1

11

尝试

{{ item if (item | ipv4) else lookup('dig',item) }}
于 2017-03-02T18:23:16.670 回答