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.


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:

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

| improve this answer | |

Have a rummage around in your system's syslog file location. That's where it usually ends up for me (Ubuntu 12.04).

Failing that, you might want to run ansible-playbook -vvvv $args to turn on some debug logging, then tee it to a file.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.