Ansible Dev Ops

The Ansible Debug Module

When you are working with Ansible playbooks, it’s great to have some debug options. Ansible provides a debug module that makes this task easier. It’s a handy tool to figure out any problem areas.

Getting Started

Ansible debug module is easy to use. For our first example, let’s try a simple hello world playbook. You can set up the 1_debug_example.yml playbook file:

---
- name: Debug Example - Hello World
hosts: localhost
tasks:
- name: Print debug message
debug:

The msg argument prints the information. Now if you run the playbook, you see the debug message:

Running Loops

Let’s try a more complicated example. In this example, the playbook 2_debug_example.yml has the following code:

---
- name: Debug Example with Loop
hosts: localhost
connection: local
gather_facts: no

tasks:
- name: Find Server
debug:
msg: "{{ item.name }} is {{ item.cpu }}"
with_items:
- name: machine1
cpu: 2.4GHz
memory: 2MB
disk: 100GB
network: 10Mbps
- name: machine2
cpu: 3GHz
memory: 1MB
disk: 500GB
network: 40Mbps
- name: machine3
cpu: 1.7GHz
memory: 4MB
disk: 200GB
network: 100Mbps
loop_control:
label: "{{ item.name }}"

It’s going to print out the server names and CPU speeds.

Debug Module Verbosity Control

You can set up your debug module to control the verbosity levels. Let’s create the playbook 3_debug_example.yml:

---
- name: Debug Example Uptime
hosts: localhost
connection: local
 
tasks:
- name: Find Uptime
shell: /usr/bin/uptime
register: result
 
- name: Print debug message
debug:
var: result
verbosity: 2

Here we are registering a variable called result to store debug information. When you run the playbook without any flags:

You don’t see any debug information.

Now let’s try running the playbook command with “-v” flag:

You have a lot more information than before. It’s printing out the uptime information that you ran on the shell.

If you try the “-vv” flag, you get more verbose information:

Conclusion

You can set up the Ansible debug module to make it easier to find problems. If you are working with others, you can set up the debug module in such a way that you can get verbose output only when you want.

Further Study:

About the author

Zak H

Zak H

Zak H. lives in Los Angeles. He enjoys the California sunshine and loves working in emerging technologies and writing about Linux and DevOps topics.