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 callback is an example of how to record playbook events to a log file, and the mail callback sends email on playbook failures.
The say 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.
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 file in order to function. For example:
#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 ansible.cfg. 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.
- actionable – shows only items that need attention
- aws_resource_actions – summarizes all “resource:actions” completed
- cgroup_memory_recap – Profiles maximum memory usage of tasks and full execution using cgroups
- cgroup_perf_recap – Profiles system activity of tasks and full execution using cgroups
- context_demo – demo callback that adds play/task context
- counter_enabled – adds counters to the output items (tasks and hosts/task)
- debug – formatted stdout/stderr display
- default – default Ansible screen output
- dense – minimal stdout output
- foreman – Sends events to Foreman
- full_skip – suppresses tasks if all hosts skipped
- grafana_annotations – send ansible events as annotations on charts to grafana over http api
- hipchat – post task events to hipchat
- jabber – post task events to a jabber server
- json – Ansible screen output as JSON
- junit – write playbook output to a JUnit file
- log_plays – write playbook output to log file
- logdna – Sends playbook logs to LogDNA
- logentries – Sends events to Logentries
- logstash – Sends events to Logstash
- mail – Sends failure events via email
- minimal – minimal Ansible screen output
- nrdp – post task result to a nagios server through nrdp
- null – Don’t display stuff to screen
- oneline – oneline Ansible screen output
- osx_say – notify using software speech synthesizer
- profile_roles – adds timing information to roles
- profile_tasks – adds time information to tasks
- say – notify using software speech synthesizer
- selective – only print certain tasks
- skippy – Ansible screen output that ignores skipped status
- slack – Sends play events to a Slack channel
- splunk – Sends task result events to Splunk HTTP Event Collector
- stderr – Splits output, sending failed tasks to stderr
- sumologic – Sends task result events to Sumologic
- syslog_json – sends JSON events to syslog
- timer – Adds time to play stats
- tree – Save host events to files
- unixy – condensed Ansible output
- yaml – yaml-ized Ansible screen output
See also
- 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