可组变量vs参数化的额外变量包括任务



我看到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

local-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值在这两种情况下都没有获胜?

首先,恕我直言这是一个bug。你应该将此作为Github问题提交ansible.

第二,我怀疑发生这种情况是因为include行被较早地解析了,以某种错误的方式,额外的变量没有被考虑在内。

最新更新