Prev Next

DevOps / Ansible Interview questions

What happens internally when Ansible gathers facts?

Fact gathering runs as an implicit task at the start of a play (unless disabled), dispatching the built-in setup module to every host in the play before any of the play's own tasks execute.

flowchart TD A[Play starts, gather_facts not disabled] --> B[setup module dispatched to each host] B --> C[setup inspects OS, network, hardware, environment] C --> D[Facts assembled into ansible_facts dictionary] D --> E{Fact caching enabled?} E -- Yes --> F[Facts written to cache backend] E -- No --> G[Facts held only in memory for this run] F --> H[Facts available to all subsequent tasks in play] G --> H

The setup module inspects the host directly, reading things like network interfaces, mounted filesystems, distribution and kernel version, and environment variables, and packages all of it into a nested ansible_facts dictionary. This happens once per host per play run and can be relatively slow on hosts with many network interfaces or filesystems, since it's doing real inspection work, not just returning a cached label. If fact caching is configured (to a JSON file, Redis, or another supported backend), gathered facts are also persisted there with a configurable expiration, so a subsequent playbook run - even a completely separate one - can reuse recently-gathered facts instead of re-running setup from scratch on every single execution.

What module does Ansible dispatch to perform fact gathering?
What does enabling fact caching allow across separate playbook runs?

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