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. but same is true for 1.9.3.