prole/infrastructure/roles/no_swap/tasks/main.yml
2026-01-18 22:01:23 -08:00

87 lines
2.3 KiB
YAML

---
# Disable swap immediately (safe even if no swap)
- name: Turn off all swap immediately
ansible.builtin.command: swapoff -a
changed_when: false
failed_when: false
# Remove swap entries from /etc/fstab (prevents swap re-enabling on reboot)
- name: Remove swap entries from /etc/fstab
ansible.builtin.lineinfile:
path: /etc/fstab
state: absent
regexp: '^\s*[^#].*\s+swap\s+'
notify: reload systemd
# If dphys-swapfile is installed (common on Raspberry Pi OS), disable it
- name: Check if dphys-swapfile is installed
ansible.builtin.command: dpkg -s dphys-swapfile
register: dphys_pkg
changed_when: false
failed_when: false
- name: Stop and disable dphys-swapfile service if present
ansible.builtin.systemd:
name: dphys-swapfile
state: stopped
enabled: false
when: dphys_pkg.rc == 0
failed_when: false
- name: Uninstall dphys-swapfile if present
ansible.builtin.apt:
name: dphys-swapfile
state: absent
purge: true
update_cache: false
when: dphys_pkg.rc == 0
# Disable zram-tools if installed (some images enable zram swap)
- name: Check if zram-tools is installed
ansible.builtin.command: dpkg -s zram-tools
register: zram_pkg
changed_when: false
failed_when: false
- name: Stop and disable zramswap service if present
ansible.builtin.systemd:
name: zramswap
state: stopped
enabled: false
when: zram_pkg.rc == 0
failed_when: false
# Disable systemd-swap if installed (less common but possible)
- name: Check if systemd-swap is installed
ansible.builtin.command: dpkg -s systemd-swap
register: systemd_swap_pkg
changed_when: false
failed_when: false
- name: Stop and disable systemd-swap if present
ansible.builtin.systemd:
name: systemd-swap
state: stopped
enabled: false
when: systemd_swap_pkg.rc == 0
failed_when: false
# Optional: reduce swappiness (won't prevent swapping if swap exists, but good belt-and-suspenders)
- name: Set vm.swappiness to 0
ansible.builtin.sysctl:
name: vm.swappiness
value: "0"
state: present
reload: true
# Final verification command (for logs)
- name: Show active swap devices
ansible.builtin.command: swapon --show
register: swapon_show
changed_when: false
failed_when: false
- name: Print swapon --show
ansible.builtin.debug:
var: swapon_show.stdout_lines