Ansible variable precedence
I'm trying to understand variable precedence in Ansible - more exactly the part about host_vars and group_vars in inventory or playbook. My layout looks like this:
production/
├── inventory (alfa, beta and gamma hosts)
├── group_vars/
│ └── all (foo=1)
└── host_vars/
└── alfa (foo=2)
playbooks/
├── site.yml (debuging variable foo)
├── group_vars/
│ └── all (foo=10)
└── host_vars/
└── beta (foo=20)
So I have three nodes (alfa, beta and gamma) and foo variable. When I start a play I get this result:
alfa's foo=2
beta's foo=20
gamma's foo=10
According to documentation the precedence should be following:
- inventory group_vars
- inventory host_vars
- playbook group_vars
- playbook host_vars
But my result looks like the precedence is following:
- inventory group_vars
- playbook group_vars
- inventory host_vars
- playbook host_vars
Did I misunderstand something? Or is it a mistake in documentation? I'm using Ansible 2.0.1.
quoting @Henrik Pingel from the comments - as his comment is the correct answer to this question:
Seems like that this is an mistake in the documentation. There is an open issue for this. – Henrik Pingel Jul 26 '16 at 13:11
and this is pretty much deprecated as there's new ansible version 2.9 that fixed this behavior.