我无法弄清楚这个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任务仍然被触发?我错过了什么?
答案 0 :(得分:2)
Python(因此Ansible)区分未定义的变量和具有空值的变量。
您在Ansible中定义proxyHost
变量,但如果在shell / environment中未定义$proxyHost
,则为proxyHost
指定一个空值。
例如,您需要将其与空字符串进行比较:
when: proxyHost != ''