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.
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.
More Related questions...