Loading...

Watch: Simplifying Ansible Output with the community.general.unixy Callback Plugin

Learn how to enhance Ansible playbook readability by using the community.general.unixy callback plugin for cleaner and more concise output.

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 *

Read the full tutorial: Simplifying Ansible Output with the community.general.unixy Callback Plugin