From b74598d265b6cd73c99c9affd0cb8b97925c6e05 Mon Sep 17 00:00:00 2001 From: Ruakij Date: Sat, 7 Nov 2026 17:49:34 +0000 Subject: [PATCH] common: disk_maintenance.fstrim_mountpoints limits fstrim.service to the listed mountpoints --- common/defaults/main.yml | 2 ++ common/tasks/disk_maintenance.yml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/common/defaults/main.yml b/common/defaults/main.yml index 1f8fcb6..6c4ce47 100755 --- a/common/defaults/main.yml +++ b/common/defaults/main.yml @@ -8,6 +8,8 @@ ipv6_accept_ra_interfaces: [] disk_maintenance: # systemd OnCalendar for fstrim.timer; unset keeps the distribution schedule. fstrim_on_calendar: + # Mountpoints fstrim.service trims; unset trims every fstab filesystem. + fstrim_mountpoints: # Cron "minute hour" of the monthly ZFS trim and scrub from zfsutils-linux; unset keeps 00:24. zfs_cron_time: diff --git a/common/tasks/disk_maintenance.yml b/common/tasks/disk_maintenance.yml index 6e3719e..4a29a38 100644 --- a/common/tasks/disk_maintenance.yml +++ b/common/tasks/disk_maintenance.yml @@ -25,6 +25,36 @@ daemon_reload: yes state: restarted +- name: Create the fstrim service drop-in directory + when: disk_maintenance.fstrim_mountpoints | default(none) is not none + file: + path: /etc/systemd/system/fstrim.service.d + state: directory + +- name: Set the fstrim mountpoints + when: disk_maintenance.fstrim_mountpoints | default(none) is not none + copy: + dest: /etc/systemd/system/fstrim.service.d/mountpoints.conf + content: | + [Service] + ExecStart= + {% for m in disk_maintenance.fstrim_mountpoints %} + ExecStart=/sbin/fstrim --verbose --quiet-unsupported {{ m }} + {% endfor %} + register: fstrim_mountpoints + +- name: Trim every fstab filesystem + when: disk_maintenance.fstrim_mountpoints | default(none) is none + file: + path: /etc/systemd/system/fstrim.service.d/mountpoints.conf + state: absent + register: fstrim_mountpoints_removed + +- name: Reload systemd for the fstrim mountpoints + when: fstrim_mountpoints.changed or fstrim_mountpoints_removed.changed + systemd: + daemon_reload: yes + - name: Schedule the monthly ZFS trim and scrub when: disk_maintenance.zfs_cron_time | default(none) is not none lineinfile: