DevOps / Ansible Interview questions
How is variable precedence resolved in Ansible?
Because the same variable name can be set in role defaults, inventory, play vars, facts, and command-line extra vars simultaneously, Ansible defines a strict precedence order so the outcome is deterministic rather than depending on file-read order.
From lowest to highest precedence (simplified): role defaults, inventory file vars, inventory group_vars/host_vars, playbook vars, role/include vars, block/task vars, registered variables and facts, and finally command-line -e extra vars, which always win over everything else. This ordering exists so that a role can ship sensible fallback defaults (lowest precedence) that a consuming playbook or inventory can override, while still allowing an operator to force a specific value at runtime via -e regardless of what's set anywhere else in the codebase - useful for one-off overrides during troubleshooting without editing any files.
More Related questions...