Ansible中的条件如何使用?

时间:2017-06-14 02:12:57

标签: variables ansible conditional-statements

我无法弄清楚这个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任务仍然被触发?我错过了什么?

1 个答案:

答案 0 :(得分:2)

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

您在Ansible中定义proxyHost变量,但如果在shell / environment中未定义$proxyHost,则为proxyHost指定一个空值。

例如,您需要将其与空字符串进行比较:

when: proxyHost != ''