From 6960f3797ea52604d4c2f4b0beb98ab0890240ee Mon Sep 17 00:00:00 2001 From: Denis Knauf Date: Thu, 19 Sep 2024 23:35:42 +0200 Subject: [PATCH] logcompress: configurable compression tool, default zstd --- defaults/main.yml | 2 ++ tasks/os-debian.yml | 1 + tasks/systemd.yml | 12 ++++++++++++ .../systemd/system/logcompress.service.j2 | 2 +- vars/main.yml | 8 +++++++- 5 files changed, 23 insertions(+), 2 deletions(-) rename files/systemd/system/logcompress.service => templates/systemd/system/logcompress.service.j2 (64%) diff --git a/defaults/main.yml b/defaults/main.yml index 598afa1..8d714e5 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,3 +1,4 @@ +--- has_hwrng: '{{ansible_virtualization_role != "guest" and ansible_local.devices.hwrng }}' is_virt_guest: '{{ansible_virtualization_role == "guest"}}' is_container: '{{ansible_virtualization_role == "guest" and ansible_virtualization_type == "lxc"}}' @@ -12,3 +13,4 @@ sshd_host_keys: - '/etc/ssh/ssh_host_ed25519_key' sshd_pubkey_authentication: 'yes' apt_clean_after_install: false +logcompress_algo: 'zstd' diff --git a/tasks/os-debian.yml b/tasks/os-debian.yml index 115c64a..7745777 100644 --- a/tasks/os-debian.yml +++ b/tasks/os-debian.yml @@ -111,6 +111,7 @@ - vim-nox - '{{ [] if is_container else ["xfsdump", "xfsprogs"] }}' - '{{ needed_debs if needed_debs is defined else [] }}' + - '{{ logcompress_algo if logcompress_algo else [] }}' # remove garbage: diff --git a/tasks/systemd.yml b/tasks/systemd.yml index 95036b4..4e79efc 100644 --- a/tasks/systemd.yml +++ b/tasks/systemd.yml @@ -55,6 +55,18 @@ with_fileglob: - "systemd/system/*" +- name: install systemd-logcompress-jobs + template: + src: "{{item}}" + dest: /etc/systemd/system + owner: root + group: root + mode: 0644 + with_fileglob: + - "systemd/system/*" + vars: + command: '{{ logcompress_command | default( logcompress_compression_commands[ logcompress_algo | default( "zstd") ] ) }}' + - name: enable services systemd: name: "{{item}}" diff --git a/files/systemd/system/logcompress.service b/templates/systemd/system/logcompress.service.j2 similarity index 64% rename from files/systemd/system/logcompress.service rename to templates/systemd/system/logcompress.service.j2 index a70542b..3faafd4 100644 --- a/files/systemd/system/logcompress.service +++ b/templates/systemd/system/logcompress.service.j2 @@ -3,4 +3,4 @@ Description=Compress old logs in /var/log/%%Y [Service] Type=oneshot -ExecStart=/usr/bin/find /var/log/ -regex '/var/log/2[0-9][0-9][0-9]/2[0-9][0-9][0-9]-[01][0-9]-[0-3][0-9]' -mtime +0 -exec xz {} + +ExecStart=/usr/bin/find /var/log/ -regex '/var/log/2[0-9][0-9][0-9]/2[0-9][0-9][0-9]-[01][0-9]-[0-3][0-9]' -mtime +0 -exec {{command}} {} + diff --git a/vars/main.yml b/vars/main.yml index ac79143..8d5550a 100644 --- a/vars/main.yml +++ b/vars/main.yml @@ -1,2 +1,8 @@ --- -# vars file for system \ No newline at end of file +# vars file for system +logcompress_compression_commands: + gzip: 'gzip -9' + bzip2: 'bzip2 -9' + xz: 'xz -9' + lz4: 'lz4 -9 --rm' + zstd: 'zstd -19 --rm'