44 lines
1.1 KiB
YAML
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
|