Chapter 8. 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, we’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 [mezzanine : check out the repository on the host] ************************ fatal: [web]: FAILED! => {"changed": false, "cmd": "/usr/bin/git ls-remote '' -h refs/heads/master", "msg": "Warning:********@github.com: Permission denied (publickey).\r\nfatal: Could not read from remote repository.\n\nPlease make sure you have the correct access rights\nand the repository exists.", "rc": 128, "stderr": "Warning: Permanently added 'github.com,140.82.121.4' (RSA) to the list of known hosts.\r\ngit@github.com: Permission 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": ["Warning: Permanently added 'github.com,140.82.121.4' (RSA) to the list of known hosts.", "git@github.com: Permission denied (publickey).", "fatal: Could not read from remote repository.", "", "Please make sure you have the correct access rights", "and the repository exists."], ...

Get Ansible: Up and Running, 3rd 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.