ansible-playbooks/roles/disks/tasks/trim-ssd.yml
2025-11-02 21:18:15 +01:00

44 lines
1.1 KiB
YAML

---
# see: https://wiki.archlinux.org/title/Solid_state_drive#Periodic_TRIM
- name: Check if there is at least one SSD
ansible.builtin.set_fact:
has_at_least_one_ssd: "{{ ansible_facts.devices | dict2items | selectattr('value.rotational', 'equalto', '0') | list | length > 0 }}"
changed_when: false
- name: Skip trim role
ansible.builtin.meta: end_play
when: not has_at_least_one_ssd
- name: Install trim tools
ansible.builtin.package:
name: util-linux
state: present
changed_when: false
- name: Edit trim periodicity if needed
ansible.builtin.template:
src: templates/fstrim.timer.j2
dest: "/etc/systemd/system/fstrim.timer.d/override.conf"
owner: root
group: root
mode: "0644"
register: timer_config
- name: Systemd daemon reload
ansible.builtin.systemd:
daemon_reload: true
when: timer_config.changed
- name: Enable periodic trim
ansible.builtin.systemd:
name: fstrim.timer
enabled: true
state: started
changed_when: false
- name: Install nvme-cli
ansible.builtin.package:
name: nvme-cli
state: present
changed_when: false