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', ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access