Introduction
Ansible is a powerful open-source automation tool that simplifies configuration management, application deployment, and task automation. When running Ansible playbooks, the default output can sometimes be overwhelming, especially when dealing with a large number of hosts and tasks. The community.general.unixy callback plugin offers a condensed and readable format for Ansible output, resembling the familiar style of LINUX/UNIX startup logs.
Understanding Callback Plugins
Callback plugins in Ansible allow you to customize and enhance the output generated during playbook execution. The community.general.unixy callback plugin is a stdout callback, meaning it alters the standard output format of Ansible when running playbooks.
Configuration Setup
To enable the community.general.unixy callback plugin, you need to make a few configurations in your Ansible setup. In the ansible.cfg file, add the following lines under the [defaults] section:
``ini
[defaults]
callbacks_enabled = community.general.unixy
stdout_callback = community.general.unixy
`
This ensures that the community.general.unixy callback plugin is activated and set as the stdout callback.
Example Playbook
Let's consider a simple Ansible playbook named ping.yml that utilizes the ansible.builtin.ping module to test the connection to all hosts:
`yaml
---
- name: Ping module Playbook
hosts: all
tasks:
- name: Test connection
ansible.builtin.ping:
`
In the provided inventory file (inventory), the connection is set to local:
`yaml
localhost ansible_connection=local
`
Running Playbooks Without and With Unixy Callback
Without Unixy:
`bash
ansible-playbook -i inventory ping.yml
`
The default output might look like this:
`
PLAY [Ping module Playbook] *
TASK [Gathering Facts]
[WARNING]: Platform darwin on host localhost is using the discovered Python interpreter
at /opt/homebrew/bin/python3.12, but future installation of another Python interpreter
could change the meaning of that path. See https://docs.ansible.com/ansible-
core/2.16/reference_appendices/interpreter_discovery.html for more information.
ok: [localhost]
TASK [Test connection]
ok: [localhost]
PLAY RECAP **
localhost : ok=2 changed=0 unreachable=0 failed=0 skipped=0 rescued=0 ignored=0
`
With Unixy:
`bash
ansible-playbook -i inventory ping.yml
`
Enabling the Unixy callback plugin results in a more concise and readable output:
``
Executing playbook ping.yml
- Ping module Playbook on hosts: all -
Gathering Facts...
[WARNING]: Platform darwin on host localhost is using the discovered Python interpreter
at /opt/homebrew/bin/py