system-config/playbooks/roles/logrotate/tasks/main.yaml
Dr. Jens Harbott 3cb97da403 logrotate: fix removal of old config files
The path was missing the right prefix

Change-Id: I217fb0799603fb954575df8f6108cae6c4d47c01
2023-07-10 20:36:59 +02:00

39 lines
1.4 KiB
YAML

- name: Check for filename
fail:
msg: Must set logrotate_file_name for logfile to rotate
when: logrotate_file_name is not defined
- assert:
that:
- logrotate_frequency in ('hourly', 'daily', 'weekly', 'monthly', 'yearly', 'size')
fail_msg: Invalid logrotate_frequency
- assert:
that:
- logrotate_size
fail_msg: Must specify size for rotation
when: logrotate_frequency == 'size'
# Hash the full path to avoid any conflicts but remain idempotent.
- name: Create a unique config name
set_fact:
# NOTE(ianw) 2023-02-13 : we missed that this makes files with
# names like "*.1234.conf" when using wild-cards. Below we have
# dropped using the file-name component. After we've removed them
# we can drop this.
_old_logrotate_generated_config_file_name: "{{ logrotate_file_name | basename }}.{{ (logrotate_file_name|hash('sha1'))[0:5] }}.conf"
logrotate_generated_config_file_name: "{{ (logrotate_file_name | hash('sha1'))[0:6] }}.conf"
- name: Clear out potentially confusing config files
file:
state: absent
path: '/etc/logrotate.d/{{ _old_logrotate_generated_config_file_name }}'
- 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