Un fact en Ansible es una pieza de información o un dato sobre un sistema gestionado (host) que Ansible recopila automáticamente al ejecutar un playbook. Este proceso de recolección, conocido como gathering en inglés, se centra en obtener información básica de los nodos gestionados (arquitectura del sistema, versión, detalles de la CPU, etc.), que luego se almacena como variables utilizables en los playbooks para configuraciones dinámicas.
Todos esos datos son recopilados por el módulo setup. Éste se ejecuta automáticamente cuando ejecutamos un playbook aunque no usemos el módulo en el playbook.
Los facts se almacenan en la variable ansible_facts
Aquí podemos ver un ejemplo de lo que almacena la variable.
Podemos evitar la recopilación de facts añadiendo la opción gather_facts y no en el playbook.
Al cambiar la opción de recolección de facts, ahora la variable no contiene datos.
El comportamiento del gathering facts viene en el fichero de configuración /etc/ansible/ansible.cfg en el apartado gathering. Por defecto está en implicit , lo que quiere decir que Ansible recopilará los facts lo especifiquemos o no en el playbook. Si queremos que no se recopilen, indicaremos explicit. El playbook tiene más prioridad que el .cfg