2017-03-02 65 views
1

是否可以在安全劇本中使用Jinja2過濾條件的結果?Ansible/jinja2:在條件下使用過濾條件

我試圖得到這個工作,但都沒有成功:

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

凡在我目前的測試項目設置爲本地主機(和可以是任何其他私人或公共領域)。

應該這樣做:如果項目是IPv4地址ADRESS應返回,否則就應該是「轉化」(與DNS查找挖)到IPv4地址 - 但它始終是返回的主機名。

有什麼想法?

在此先感謝 馬蒂亞斯

回答

3

嘗試

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

謝謝!在Ubuntu 16.04中,你還需要包'python-netaddr'和'python-dnspython' –