* rename into say * add support for espeak command * adds symlink from osx_say to say * Update version number
3.4 KiB
Callback Plugins
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.
Example callback plugins
The log_plays <log_plays_callback>
callback is an
example of how to record playbook events to a log file, and the mail <mail_callback>
callback sends email on playbook failures.
The say <say_callback>
callback responds with
computer synthesized speech in relation to playbook events.
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 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 ansible.cfg <ansible_configuration_settings>
file in order to function. For example:
#callback_whitelist = timer, mail, profile_roles
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 ansible.cfg <ansible_configuration_settings>
.
For example:
stdout_callback = dense
or for my custom callback:
stdout_callback = mycallback
This only affects ansible-playbook
by default.
Setting a callback plugin for ad-hoc commands
The ansible
ad hoc
command specifically uses a different callback plugin for stdout, so
there is an extra setting in ansible_configuration_settings
you need to add to use
the stdout callback defined above:
[defaults]
bin_ansible_callbacks=True
You can also set this as an environment variable:
export ANSIBLE_LOAD_CALLBACK_PLUGINS=1
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.
- maxdepth
-
1
callback/*
action_plugins
-
Ansible Action plugins
cache_plugins
-
Ansible cache plugins
connection_plugins
-
Ansible connection plugins
inventory_plugins
-
Ansible inventory plugins
shell_plugins
-
Ansible Shell plugins
strategy_plugins
-
Ansible Strategy plugins
vars_plugins
-
Ansible Vars plugins
- User Mailing List
-
Have a question? Stop by the google group!
- webchat.freenode.net
-
#ansible IRC chat channel