Find the latest ansible error log

ansible

I used an ansible script to bring a server configuration up. I was running the script from inside the server and doing everything at the localhost inventory.

Now the ssh connection I had to the server closed and I cannot find the log file. Where is the standard log path for this? Under /var/log there is no ansible file.

I am running the script again, and I expect the error to come again, but this is not a great solution since the script takes a few hours to run to the error point.

Best Answer

Ansible doesn't create it's own logs by default - you have to tell it to do so, using an ansible.cfg file. Ansible does do some logging to syslog by default:

Note that ansible will, without this setting, record module arguments called to the syslog of managed machines.

So, that'll log module args to the syslog of the machines you're managing.

To switch on full logging, on your control machine, you can create an ansible.cfg file that looks like this:

[defaults]
log_path = ./ansible.log

Then save it somewhere ansible will look for it. Ansible checks these locations for ansible.cfg files, in this order:

  • ANSIBLE_CONFIG (an environment variable)
  • ansible.cfg (in the current directory)
  • .ansible.cfg (in the home directory)
  • /etc/ansible/ansible.cfg

An alternative option is to set the ANSIBLE_LOG_PATH environment variable, to the path you want to log to - it's equivalent to setting the log_path option in the ansible.cfg file.

See here for more information: http://docs.ansible.com/intro_configuration.html