Accessing facts for non-playbook hosts
In the earlier exercise, we launched the main playbook, which invokes all the other playbooks to configure the entire infrastructure. At times, we may just want to configure a portion of our infrastructure, in which case, we can just invoke the individual playbooks, such as lb.yml
, www.yml
, or db.yml
. Let's try running the Ansible playbook just for the load balancers:
$ ansible-playbook -i customhosts lb.yml
Oops! It failed! Here is the snapshot of the snippet from the output:
Ansible exits with an error as it was not able to find a variable from the host, which is not part of the playbook anymore. Here is how Ansible behaves when it comes to magic variables:
- Ansible starts to gather facts while it runs the code on a host. These facts are then stored in the memory for the duration of the playbook run. This is the default behavior, and can be turned off.
- For host B to discover variables from host A, Ansible should have communicated with host A earlier...