ansible group vars vs带有参数化包含任务的额外变量

时间:2015-05-15 19:00:54

标签: ansible

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

1 个答案:

答案 0 :(得分:0)

首先,恕我直言,这是一个错误。您应该将此文件作为与ansible的Github问题提交。

其次,我怀疑这种情况发生是因为早期解析了包含行,在某些错误的情况下,不考虑额外的变量。