在調試帶過濾器鏈接的條件子句並檢查未定義變量(omit
)時,我發現結果取決於過濾器如何包含在字符串中。Ansible:使用Jinja2過濾器鏈接時「省略佔位符」
我的意圖是在條件中爲value
作出Ansible任務的when子句。每個「注」在鏈接Ansible documentation,我試着加入omit
並得到以下結果。
我的劇本:
---
- hosts: target
tasks:
- debug: msg="{{ value_not_defined|default('0') | int or omit }}"
- debug: msg="debug {{ value_not_defined|default('0') | int or omit }}"
結果的相關部分:
TASK [debug] *******************************************************************
ok: [192.168.1.2] => {
"msg": "Hello world!"
}
msg: Hello world!
TASK [debug] *******************************************************************
ok: [192.168.1.2] => {
"msg": "debug __omit_place_holder__31268e787e722b495d512986994bcd66ce943a69"
}
msg: debug __omit_place_holder__63eea0d96dd6ed867b95405e11d87dddf61f448d
在哪裏以下結果從何而來?
Hello world!
__omit_place_holder__63eea0d96dd6ed867b95405e11d87dddf61f448d
爲什麼取決於其他字符串debug
的msg
價值的變化?