Enable Logging
By default, Ansible does not log any information regarding its plays. If you wished, for example, to look back on the execution of a play completed yesterday, you wouldn’t be able to.
To address this, we’ll enable logging which writes all information displayed during an execution of a play to /var/log/ansible.log. To ensure this file does not grow too large, we’ll also configure logrotate so it’s periodically pruned.
Create File
Within /var/log/ directory create a new file called ansible.log.
touch /var/log/ansible.logEnsure the ansible user has full control over the file.
chown ansible:ansible /var/log/ansible.logUpdate Configuration
Open Ansible’s configuration file located at /etc/ansible/ansible.cfg and add the following line:
/etc/ansible and file ansible.cfg may need to be manually created.
[defaults]
log_path = /var/log/ansible.log
Log Rotate
As with any log file, it’s best that the file be rotated periodically to control how large it grows. For this, we’ll use logrotate. If you do not already have logrotate, you can install it via the command sudo apt install logrotate.
Create a configuration file for ansible under logrotate’s configuration directory.
touch /etc/logrotate.d/ansibleAdd the following contents to the file:
/var/log/ansible.log
{
missingok
monthly
rotate 4
notifempty
}
That’s it — no restarting of the service is required. Going forward, the log file will be rotated monthly, with four files retained; the oldest will be deleted when logrotate runs.