* add more anchors to collections docs (#62827) (cherry picked from commit7e01de96d7) * add anchors to support galaxy links (#62808) (cherry picked from commit1b3bf33bdf) * doc: fix typos (#62852) (cherry picked from commitb33ae14949) * Add some documentation about using plugins in collections (#62465) - FQCN requirements - Sharing code in collections - Limitations with inventory caching (cherry picked from commitd41050b28b) * Remove Latin phrases from the docs (#62419) * add styleguide about avoiding use of latin words (cherry picked from commite7436e278f) * ovirt: Fixing typo in ovirt_disk examples (#62962) (cherry picked from commit50dc41cca2) * vmware guidlines: adjust the location of cloud-config-vcenter.ini.template (#62970) Update the location of the cloud-config-vcenter.ini.template template. The file has been moved by:2e7d36a3f9. (cherry picked from commit7ecfa4a471) * Prefer https:// links in the docs site (#62939) This is a follow-up of last year's1a11cec. It deals with links which at that point either were not present or did not support https://. (cherry picked from commitc8315bfd60) * fix minor typos (#62950) (cherry picked from commitad580a71c4) * Modernize Vagrant documentation (#62923) * By requiring a slightly newer Vagrant version (from 2015) we get the same generated Ansible inventory format is still used by today's version of Vagrant. That extended inventory format also has the benefit of allowing for simpler Ansible examples. * Switching to a current and supported Ubuntu LTS version. (cherry picked from commit0d79013f51) * add ios/iosxr deprecated modules (#62908) (cherry picked from commit6bbd9c9eca)
108 lines
3.5 KiB
ReStructuredText
108 lines
3.5 KiB
ReStructuredText
.. _callback_plugins:
|
|
|
|
Callback Plugins
|
|
================
|
|
|
|
.. contents::
|
|
:local:
|
|
:depth: 2
|
|
|
|
Callback plugins enable adding new behaviors to Ansible when responding to events.
|
|
By default, callback plugins control most of the output you see when running the command line programs,
|
|
but can also be used to add additional output, integrate with other tools and marshall the events to a storage backend.
|
|
|
|
.. _callback_examples:
|
|
|
|
Example callback plugins
|
|
------------------------
|
|
|
|
The :ref:`log_plays <log_plays_callback>` callback is an example of how to record playbook events to a log file,
|
|
and the :ref:`mail <mail_callback>` callback sends email on playbook failures.
|
|
|
|
The :ref:`say <say_callback>` callback responds with computer synthesized speech in relation to playbook events.
|
|
|
|
.. _enabling_callbacks:
|
|
|
|
Enabling callback plugins
|
|
-------------------------
|
|
|
|
You can activate a custom callback by either dropping it into a ``callback_plugins`` directory adjacent to your play, inside a role, or by putting it in one of the callback directory sources configured in :ref:`ansible.cfg <ansible_configuration_settings>`.
|
|
|
|
Plugins are loaded in alphanumeric order. For example, a plugin implemented in a file named `1_first.py` would run before a plugin file named `2_second.py`.
|
|
|
|
Most callbacks shipped with Ansible are disabled by default and need to be whitelisted in your :ref:`ansible.cfg <ansible_configuration_settings>` file in order to function. For example:
|
|
|
|
.. code-block:: ini
|
|
|
|
#callback_whitelist = timer, mail, profile_roles, collection_namespace.collection_name.custom_callback
|
|
|
|
Setting a callback plugin for ``ansible-playbook``
|
|
--------------------------------------------------
|
|
|
|
You can only have one plugin be the main manager of your console output. If you want to replace the default, you should define CALLBACK_TYPE = stdout in the subclass and then configure the stdout plugin in :ref:`ansible.cfg <ansible_configuration_settings>`. For example:
|
|
|
|
.. code-block:: ini
|
|
|
|
stdout_callback = dense
|
|
|
|
or for my custom callback:
|
|
|
|
.. code-block:: ini
|
|
|
|
stdout_callback = mycallback
|
|
|
|
This only affects :ref:`ansible-playbook` by default.
|
|
|
|
Setting a callback plugin for ad-hoc commands
|
|
---------------------------------------------
|
|
|
|
The :ref:`ansible` ad hoc command specifically uses a different callback plugin for stdout,
|
|
so there is an extra setting in :ref:`ansible_configuration_settings` you need to add to use the stdout callback defined above:
|
|
|
|
.. code-block:: ini
|
|
|
|
[defaults]
|
|
bin_ansible_callbacks=True
|
|
|
|
You can also set this as an environment variable:
|
|
|
|
.. code-block:: shell
|
|
|
|
export ANSIBLE_LOAD_CALLBACK_PLUGINS=1
|
|
|
|
|
|
.. _callback_plugin_list:
|
|
|
|
Plugin list
|
|
-----------
|
|
|
|
You can use ``ansible-doc -t callback -l`` to see the list of available plugins.
|
|
Use ``ansible-doc -t callback <plugin name>`` to see specific documents and examples.
|
|
|
|
.. toctree:: :maxdepth: 1
|
|
:glob:
|
|
|
|
callback/*
|
|
|
|
|
|
.. seealso::
|
|
|
|
:ref:`action_plugins`
|
|
Ansible Action plugins
|
|
:ref:`cache_plugins`
|
|
Ansible cache plugins
|
|
:ref:`connection_plugins`
|
|
Ansible connection plugins
|
|
:ref:`inventory_plugins`
|
|
Ansible inventory plugins
|
|
:ref:`shell_plugins`
|
|
Ansible Shell plugins
|
|
:ref:`strategy_plugins`
|
|
Ansible Strategy plugins
|
|
:ref:`vars_plugins`
|
|
Ansible Vars plugins
|
|
`User Mailing List <https://groups.google.com/forum/#!forum/ansible-devel>`_
|
|
Have a question? Stop by the google group!
|
|
`webchat.freenode.net <https://webchat.freenode.net>`_
|
|
#ansible IRC chat channel
|