Configuring Ansible to use ARA

To begin using ARA, you’ll first need to tell Ansible where it is located.

Since this location will be different depending on your operating system and how you are installing ARA, there are convenient python modules to help you figure out the right paths.

Once you’ve set up the callback_plugins configuration or the ANSIBLE_CALLBACK_PLUGINS environment variable, Ansible will automatically use the ARA callback plugin to start recording data from Ansible playbooks.

ANSIBLE_ACTION_PLUGINS or action_plugins must be set if you’d like to use the ara_record or ara_playbook action plugins.

If you would like to use the ara_api lookup plugin, then ANSIBLE_LOOKUP_PLUGINS or lookup_plugins must also be set.

Note

Starting with ARA 1.4.1 and Ansible 2.9.7, it is also possible to record ad-hoc commands in addition to playbooks.

To enable ad-hoc command recording by ARA, you must set either the ANSIBLE_LOAD_CALLBACK_PLUGINS environment variable or the corresponding ansible.cfg configuration variable, bin_ansible_callbacks, to true.

Using setup helper modules

The modules can be used directly on the command line:

$ python3 -m ara.setup.path
/usr/lib/python3.7/site-packages/ara

$ python3 -m ara.setup.plugins
/usr/lib/python3.7/site-packages/ara/plugins

$ python3 -m ara.setup.action_plugins
/usr/lib/python3.7/site-packages/ara/plugins/action

$ python3 -m ara.setup.callback_plugins
/usr/lib/python3.7/site-packages/ara/plugins/callback

$ python3 -m ara.setup.lookup_plugins
/usr/lib/python3.7/site-packages/ara/plugins/lookup

# Note: This doesn't export anything, it only prints the commands.
# If you want to export directly from the command, you can use:
#     source <(python3 -m ara.setup.env)
$ python3 -m ara.setup.env
export ANSIBLE_CALLBACK_PLUGINS=/usr/lib/python3.7/site-packages/ara/plugins/callback
export ANSIBLE_ACTION_PLUGINS=/usr/lib/python3.7/site-packages/ara/plugins/action
export ANSIBLE_LOOKUP_PLUGINS=/usr/lib/python3.7/site-packages/ara/plugins/lookup

$ python3 -m ara.setup.ansible
[defaults]
callback_plugins=/usr/lib/python3.7/site-packages/ara/plugins/callback
action_plugins=/usr/lib/python3.7/site-packages/ara/plugins/action
lookup_plugins=/usr/lib/python3.7/site-packages/ara/plugins/lookup

Or from python, for example:

>>> from ara.setup import callback_plugins
>>> print(callback_plugins)
/usr/lib/python3.7/site-packages/ara/plugins/callback

>>> from ara.setup import action_plugins
>>> print(action_plugins)
/usr/lib/python3.7/site-packages/ara/plugins/action

>>> from ara.setup import lookup_plugins
>>> print(lookup_plugins)
/usr/lib/python3.7/site-packages/ara/plugins/lookup