Ansible provides hundreds of modules which are reusable standalone scripts that get executed by Ansible on your behalf. The Ansible debug module is a handy module that prints statements during playbook execution. Additionally, it can be used to debug expressions and variables without interfering with the playbook execution.
In this guide, we are going to demonstrate how to use debug module in ansible playbook with examples.
Print a Simple Statement Using Debug Module
The most basic use of the debug module in Ansible is to prints simple statements to stdout (Standard Output). Consider a playbook that contains the following content.
--- - name: Ansible debug module in action hosts: all tasks: - name: Print a simple statement debug: msg: "Hello World! Welcome to Linuxtechi"
When executed, the playbook prints the statement “Hello World! Welcome to Linuxtechi” to the terminal.
$ sudo ansible-playbook /etc/ansible/print-simple-stamement.yml
Print Variables Using Debug module
Apart from just printing simple statements to the terminal, the debug module also captures and prints the values of variables using the msg parameter.
Consider the playbook below. We have specified two variables: greetings and site using the vars keyword.
--- - name: Ansible debug module in action hosts: all vars: greetings: Hello World! site: Linuxtechi tasks: - name: Print the value of a variable debug: msg: "{{ greetings }}, Welcome to {{ site }}."
During playbook runtime, the debug module retrieves the values stored in the variables and prints them to stdout using the msg parameter.
$ sudo ansible-playbook /etc/ansible/print-variable.yml
Use Debug Module with Shell & Register Modules
The debug command can also be used alongside other Ansible modules such as shell and register modules. Consider the playbook file shown.
The Playbook checks how long the remote node has been running using the uptime -p shell command. The output of the command is captured by the register module and saved in the system_uptime variable.
The register module then prints out the value of the variable which contains the command output to stdout.
--- - name: Ansible debug module in action hosts: all tasks: - name: Print system uptime shell: uptime -p register: system_uptime - name: Print uptime of managed node debug: msg: "{{ system_uptime }}"
When the playbook is executed, you get a bunch of information printed to stdout. At the bottom, be sure to find the output on the system uptime as defined in the Playbook.
$ sudo ansible-playbook /etc/ansible/print-system-uptime.yml
Conclusion
In general, the Ansible debug module is a handy module that prints statements to the output. These can be simple strings or command output which is stored in variables. In most cases, it is used with shell and register modules to streamline capturing and printing command output.
Also Read : How to Use Ansible Vault to Secure Sensitive Data
Great article.