如果vlan
變量沒有被定義在ansible中,然而在下面的情況下,ansible將會失敗。在其他語言中,如果第一個條件失敗,則應該忽略其餘條件(短路)。如何在Ansible中解決這個問題?當第一次失敗時,不能跳過休息條件
- name: Validate vlan ID
when: vlan is defined and ({{ vlan }} < 1 or {{ vlan }} > 4094)
fail: msg='VLAN {{vlan}} is not in the range of [1, 4094]'
File "/usr/lib/python2.7/dist-packages/jinja2/runtime.py", line 485, in _fail_with_undefined_error
raise self._undefined_exception(hint)
UndefinedError: 'vlan' is undefined
根據你的建議,我得到了以下問題: msg:VLAN 2333不在[1,4094] – Chenww
的範圍內這是什麼時候沒有定義VLAN?我運行了一個樣本,當vlan未定義時,任務被跳過 –
當我將vlan定義爲值2333時,會發生這種情況。可能與字符串或數字有關? – Chenww