Prev Next

DevOps / Ansible Interview questions

Explain the internal working of Ansible's variable precedence resolution?

Internally, Ansible builds up a variable's final value by layering every source that defines it, in a fixed precedence order, so the value that "wins" is whichever source sits highest in that order, regardless of the order files happen to be read from disk.

flowchart TD A[Role defaults - lowest] --> B[Inventory vars] B --> C[Inventory group_vars / host_vars] C --> D[Playbook vars / vars_files] D --> E[Role vars] E --> F[Block / task vars] F --> G[Registered vars and facts] G --> H[Extra vars -e - highest] H --> I[Final resolved value used by the task]

As Ansible processes a playbook, it maintains an internal merged variable namespace per host; each layer above simply overwrites the same key if it's also defined at a lower layer, rather than merging values together (with the notable exception of hash/dictionary merging, which can be configured via hash_behaviour, though the default is still overwrite, not merge). Because -e extra vars sit at the very top, they always win regardless of what's set anywhere else in roles, inventory, or playbooks - this is deliberate, since it gives an operator a reliable way to force a value at runtime without needing to trace through every file that might otherwise define it.

By default, what happens when the same variable is defined at two different precedence layers?
What setting can change how dictionaries interact across precedence layers?

Invest now in Acorns!!! 🚀 Join Acorns and get your $5 bonus!
Acorns Logo

Invest now in Acorns!!! 🚀
Join Acorns and get your $5 bonus!

Earn passively and while sleeping

Acorns is a micro-investing app that automatically invests your "spare change" from daily purchases into diversified, expert-built portfolios of ETFs. It is designed for beginners, allowing you to start investing with as little as $5. The service automates saving and investing. Disclosure: I may receive a referral bonus.

Robinhood Logo

Invest now!!! Get Free equity stock (US, UK only)!

Use Robinhood app to invest in stocks. It is safe and secure. Use the Referral link to claim your free stock when you sign up!.

The Robinhood app makes it easy to trade stocks, crypto and more.


Webull Logo

Webull! Receive free stock by signing up using the link: Webull signup.

More Related questions...

What is Ansible? What are the key features of Ansible? What is a playbook in Ansible? Define an inventory file in Ansible? What is a module in Ansible? What are Ansible facts? Describe roles in Ansible? What are the types of variables in Ansible? List the components of an Ansible role directory? How do you use handlers in Ansible? What is Ansible Vault? Explain the purpose of tags in Ansible playbooks? What is ansible.cfg? How do you apply become for privilege escalation in Ansible? What is Ansible Galaxy? Why doesn't Ansible require agents on managed nodes? How does Ansible ensure idempotency in playbook runs? What is the difference between include and import in Ansible? When should you use loops instead of duplicating tasks? What happens when a task fails in an Ansible playbook? How is variable precedence resolved in Ansible? Why should you avoid hardcoding secrets in playbooks? What is the difference between Ansible and Chef/Puppet? How does Ansible handle privilege escalation with become? When would you choose dynamic inventory over static inventory? How can you optimize playbook execution speed? What is the difference between copy and template modules? Why do we use handlers instead of regular tasks for restarts? How does Ansible's Jinja2 templating work in playbooks? What is the difference between roles and collections? When should you use blocks with rescue in Ansible? How is check mode implemented in Ansible? Why doesn't Ansible require a central server by default? What is the difference between ansible-playbook and ansible ad-hoc commands? How do you troubleshoot a failing Ansible task? Explain the internal working of Ansible's execution model? Explain the execution flow of an Ansible playbook run? Explain the lifecycle of a task in an Ansible play? How does Ansible guarantee idempotent module behavior internally? What happens internally when Ansible gathers facts? How can you optimize a large-scale Ansible deployment for performance? Which is better and why: linear or free strategy for a large inventory? How does forking improve execution speed in Ansible? Why is idempotency critical to Ansible's module design? How do you troubleshoot slow fact gathering in Ansible? Explain the internal working of Ansible's variable precedence resolution? What happens when a handler is notified multiple times in a play? How does Ansible implement fact caching internally? Explain the execution flow of a rolling update using serial? How can you optimize role design to avoid duplicate work at scale?
Show more question and Answers...

Testing

Comments & Discussions