Hello list, 

I have encountered some not expected results when i tried to include (with 
include_vars) multiple var files in the beginning of a play.

I normally use the "merge" hash behavior (ansible.cfg) because it seems 
more natural to me: i usually have highly nested variable dicts 
and i wish to add or override just parts of them based on the group/host 
hierarchy.

Now, i tried to include some variables in the beginning of a play (at 
"pre_tasks" phase, but i don't thing it's relevant), to override some 
parts of existing dicts with piece of information regarding other present 
hosts (e.g. IPs for standby servers). It didn't succeed.

Consider the following example:

```
# vars file: play_vars/baz-a.yml
baz:
  a: 1
```

```
# vars file: play_vars/baz-b.yml
baz:
  b: 2
```

```
---
# playbook: play.yml
- hosts: all
    
  pre_tasks:
  - include_vars: play_vars/baz-a.yml
  - include_vars: play_vars/baz-b.yml

  tasks:
  - debug: var=baz
```

When playing play.yml, i get:  "baz": {"b": 2} while expecting "baz": 
{"a":1, "b":2}.
Is this normal? Note, this is happening under hash_behavior=merge. 



-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/32ccd17a-c318-40e5-813e-15955918c084%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to