2017-06-14 153 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