3657cacfca
Add a logrotate role that allows basic configuration of a logrotate configuration for a specific log-file. Use this role in the ansible-cron and install-ansible roles to ensure the log output they are generating is rotated. This role is not intended to manage the logrotate package (mostly to avoid the overhead of frequently checking package state when this is expected to be called for multiple configuration files on a server). We add it as a base package to our servers. Tests are added for testinfra. Change-Id: I90f59c3e42c1135d6be120de38e942ece608b761
18 lines
725 B
YAML
18 lines
725 B
YAML
- name: Check for filename
|
|
fail:
|
|
msg: Must set logrotate_file_name for logfile to rotate
|
|
when: logrotate_file_name is not defined
|
|
|
|
# Hash the full path to avoid any conflicts but remain idempotent.
|
|
# "/var/log/ansible/ansible.log" becomes "ansible.log.37237.conf" for example
|
|
- name: Create a unique config name
|
|
set_fact:
|
|
logrotate_generated_config_file_name: "{{ logrotate_file_name | basename }}.{{ (logrotate_file_name|hash('sha1'))[0:5] }}.conf"
|
|
|
|
- name: 'Install {{ logrotate_file_name }} rotatation config file'
|
|
template:
|
|
src: logrotate.conf.j2
|
|
dest: '/etc/logrotate.d/{{ logrotate_config_file_name|default(logrotate_generated_config_file_name) }}'
|
|
owner: root
|
|
group: root
|
|
mode: 0644 |