Installs logrotate and provides an easy way to setup additional logrotate scripts by specifying a list of directives.
logrotate_scripts: A list of logrotate scripts and the directives to use for the rotation.
- name - The name of the script that goes into /etc/logrotate.d/
- path - Path to point logrotate to for the log rotation
- paths - A list of paths to point logrotate to for the log rotation.
- options - List of directives for logrotate, view the logrotate man page for specifics
- scripts - Dict of scripts for logrotate (see Example below)
logrotate_scripts: - name: rails path: "/srv/current/log/*.log" options: - weekly - size 25M - missingok - compress - delaycompress - copytruncate
logrotate_scripts: - name: rails paths: - "/srv/current/scare.log" - "/srv/current/hide.log" options: - weekly - size 25M - missingok - compress - delaycompress - copytruncate
Setting up logrotate for additional Nginx logs, with postrotate script.
- hosts: all vars: logrotate_scripts: - name: nginx-options path: /var/log/nginx/options.log options: - daily - weekly - size 25M - rotate 7 - missingok - compress - delaycompress - copytruncate - name: nginx-scripts path: /var/log/nginx/scripts.log options: - daily - weekly - size 25M scripts: postrotate: "echo test" roles: - ansible-logrotate
This role is already configured to run on travis CI within a test playbook but it's useful to be able to run and debug a role locally which can be done via Vagrant and the
To run the test playbook locally within a Vagrant virtual machine:
cd tests vagrant up --provision