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