2017-06-14 148 views
0

我想不通这Ansible任务如何在Ansible中使用条件?

我跑我的剧本ansible-playbook play.yml -e proxyHost=$proxyHost -e proxyPort=$proxyPort

- name: Set proxy when provided 
    set_fact: proxyproperty=" -Dhttp.proxyHost={{ proxyHost }} -Dhttp.proxyPort={{ proxyPort }} -Dhttps.proxyHost={{ proxyHost }} -Dhttps.proxyPort={{ proxyPort }} -Dhttp.nonProxyHosts=localhost|127.0.0.1|{{ ip }}|{{ fqdn }}|{{ hostName }}" 
    when: proxyHost is defined 

那么,为什么当我还没有设置$ProxyHost这个ansible任务仍然被触发?我错过了什么?

回答

2

Python(因此Ansible)区分未定义的变量和具有空值的变量。

您在Ansible定义proxyHost变量,但在当$proxyHost壳/环境不确定的情况下,您分配proxyHost空值。

你需要,例如,将其与一个空字符串:

when: proxyHost != '' 
+0

AHH!谢谢! – bc81