O'Reilly logo

Ansible: Up and Running by Lorin Hochstein

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Chapter 14. 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 last chapter, I’ll review some techniques you can use to help track down those errors.

Debugging SSH Issues

Sometimes, Ansible fails to make a successful SSH connection with the host. When this happens, it’s helpful to see exactly what arguments Ansible is passing to the underlying SSH client so that you can reproduce the problem manually on the command line.

If you invoke ansible-playbook with the -vvv argument, you can see the exact SSH commands that Ansible invokes. This can be handy for debugging.

Example 14-1 shows some sample Ansible output for executing a module that copies a file.

Example 14-1. Example output when verbose flags are enabled
TASK: [copy TLS key] ********************************************************** <127.0.0.1> ESTABLISH CONNECTION FOR USER: vagrant <127.0.0.1> ESTABLISH CONNECTION FOR USER: vagrant <127.0.0.1> EXEC ['ssh', '-C', '-tt', '-q', '-o', 'ControlMaster=auto', '-o', 'ControlPersist=60s', '-o', 'ControlPath=/Users/lorinhochstein/.ansible/cp/ ansible-ssh-%h-%p-%r', '-o', 'Port=2222', '-o', u'IdentityFile="/Users/ lorinhochstein/.vagrant.d/insecure_private_key"', '-o', 'KbdInteractive Authentication=no', '-o', 'PreferredAuthentications=gssapi-with-mic,gssapi-keyex, hostbased,publickey', '-o', 'PasswordAuthentication=no', ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required