Quiz Entry - updated: 2026.11.05
Two data centres each hold two hosts, all in a parent group datacenters. How do you set (1) one value for all servers, (2) a different value per data centre, (3) a different value per host?
(1) group_vars/datacenters, (2) one file per data-centre group (group_vars/datacenter1, group_vars/datacenter2), (3) one file per host under host_vars/. Each level is more specific than the one before, and the more specific one wins.
The inventory:
[datacenter1]
demo1.example.com
demo2.example.com
[datacenter2]
demo3.example.com
demo4.example.com
[datacenters:children]
datacenter1
datacenter2
| Need | File | Content |
|---|---|---|
| Same for everyone | group_vars/datacenters |
package: httpd |
| Per data centre | group_vars/datacenter1 / group_vars/datacenter2 |
package: httpd / package: apache |
| Per host | host_vars/demo1.example.com … demo4.example.com |
package: httpd, package: apache, package: mariadb-server, … |
The levels can be combined: set a default in datacenters, override it for datacenter2, and override that again for one host. A child group's variables beat its parent group's, and host variables beat any group's.
Go deeper:
How variables are merged (official docs) — child groups override parent groups, which override
all.