What are Ansible Facts?
Ansible facts are variables that automatically are obtained for example the hostname, the network interfaces, the version of the operating system and the number of CPUs.
How to the get the ansible facts?
Following the command lines that can be used.
$ ansible <host> -m setup
Following the command to filter the result.
$ ansible <host> -m setup -a ‘filter=EXPRESSION’
How to customize ansible facts?
The facts are in the path /etc/ansible/facts.d
by default. To add customization is required to create files in this dir with the extension .fact. ( E.g custom.fact ) These custom files need to be in the key-par or JSON format. Following an example.
# custom.fact file [general] service = httpd enabled = true
--- # File setup_facts.yml as example of this configuration. # These values will be returned when the command "ansible myserver.example.com -m setup -a 'filter=ansible_local'" be executed # Use ansible to run this script "ansible-playbook setup_facts.yml" - name: Script to setup the custom facts hosts: myserver.example.com vars: path: /etc/ansible/facts.d file: custom.fact tasks: - name: Create the remote directory {{ path }} file: state: directory recurse: yes path: "{{ path }}" - name: Copy the {{ file }} to {{ path }} copy: src: "{{ file }}" dest: "{{ path }}"
For further information, check Gathers facts about remote hosts and Local Facts (Facts.d).
1 Comment