Chapter 16. Debugging Ansible Playbooks

Let’s face it: mistakes happen. Whether it’s a bug in a playbook, or a config file on your control machine with the wrong configuration value, eventually something’s going to go wrong. In this chapter, I’ll review some techniques you can use to help track down those errors.

Humane Error Messages

When an Ansible task fails, the output format isn’t very friendly to any human reader trying to debug the problem. Here’s an example of an error message generated while working on this book:

TASK [check out the repository on the host] ************************************* fatal: [web]: FAILED! => {"changed": false, "cmd": "/usr/bin/git clone --origin o rigin '' /home/vagrant/mezzanine/mezzanine_example", "failed": true, "msg": "Clon ing into '/home/vagrant/mezzanine/mezzanine_example'...\nPermission denied (publi ckey).\r\nfatal: Could not read from remote repository.\n\nPlease make sure you h ave the correct access rights\nand the repository exists.", "rc": 128, "stderr": "Cloning into '/home/vagrant/mezzanine/mezzanine_example'...\nPermission denied ( publickey).\r\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists.\n", "stderr_lines" : ["Cloning into '/home/vagrant/mezzanine/mezzanine_example'...", "Permission den ied (publickey).", "fatal: Could not read from remote repository.", "", "Please m ake sure you have the correct access rights", "and the repository exists."], ...

Get Ansible: Up and Running, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.