我看到我的group_vars/all
中定义了一个值,我期望看到来自-e @local-vars.yml
文件的重写值。在正常情况下,-e
根据文档获胜,但在使用参数化包含的这种更复杂的情况下,似乎-e
值在正确的时间没有涉及。
剧本/ WTF-vars.yml
---
- hosts: appservers
tasks:
- name: WTF is up with this var
debug: msg={{var1}}
- include: "{{playbook_dir}}/tasks/wtf-vars-included.yml var1inner={{var1}}"
剧本/任务/ WTF-VARS-included.yml
---
- name: WTF is up with this var included
debug: msg={{var1inner}}
剧本/ group_vars /所有
---
var1: VALUE_FROM_GROUP_VAR_ALL
本地-vars.yml
---
var1: VALUE_FROM_DASH_E_FILE
用:
运行它 ansible-playbook -i inventory/local-dev.ini -e @local-vars.yml playbooks/wtf-vars.yml
打印此输出:
PLAY [appservers] *************************************************************
TASK: [WTF is up with this var] ***********************************************
ok: [va] => {
"msg": "VALUE_FROM_DASH_E_FILE"
}
ok: [vb] => {
"msg": "VALUE_FROM_DASH_E_FILE"
}
TASK: [WTF is up with this var included] **************************************
ok: [vb] => {
"msg": "VALUE_FROM_GROUP_VAR_ALL"
}
ok: [va] => {
"msg": "VALUE_FROM_GROUP_VAR_ALL"
}
PLAY RECAP ********************************************************************
va : ok=2 changed=0 unreachable=0 failed=0
vb : ok=2 changed=0 unreachable=0 failed=0
ansible-playbook -i inventory/local-dev.ini -e @local-dev.yml 0.27s user 0.22s system 78% cpu 0.628 total
所以我的问题是为什么-e
值在这两种情况下都没有获胜?
答案 0 :(得分:0)
首先,恕我直言,这是一个错误。您应该将此文件作为与ansible的Github问题提交。
其次,我怀疑这种情况发生是因为早期解析了包含行,在某些错误的情况下,不考虑额外的变量。