prole/infrastructure/roles/noswap/tasks/main.yml

109 lines
2.5 KiB
YAML

---
- name: Normalize swap_enabled fact
ansible.builtin.set_fact:
swap_enabled: "{{ swap_enabled | default(false) | bool }}"
# --- DISABLING SWAP ---
- name: Turn off all swap immediately
ansible.builtin.command: swapoff -a
changed_when: false
failed_when: false
when: not swap_enabled
- name: Remove swap entries from /etc/fstab
ansible.builtin.lineinfile:
path: /etc/fstab
state: absent
regexp: '^\s*[^#].*\s+swap\s+'
notify: reload systemd
when: not swap_enabled
- name: Check if dphys-swapfile is installed
ansible.builtin.command: dpkg -s dphys-swapfile
register: dphys_pkg
changed_when: false
failed_when: false
when: not swap_enabled
- name: Stop and disable dphys-swapfile service if present
ansible.builtin.systemd:
name: dphys-swapfile
state: stopped
enabled: false
when: not swap_enabled and 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: not swap_enabled and dphys_pkg.rc == 0
- name: Check if zram-tools is installed
ansible.builtin.command: dpkg -s zram-tools
register: zram_pkg
changed_when: false
failed_when: false
when: not swap_enabled
- name: Stop and disable zramswap service if present
ansible.builtin.systemd:
name: zramswap
state: stopped
enabled: false
when: not swap_enabled and zram_pkg.rc == 0
failed_when: false
- name: Set vm.swappiness to 0
ansible.builtin.sysctl:
name: vm.swappiness
value: "0"
state: present
reload: true
when: not swap_enabled
# --- ENABLING SWAP ---
- name: Install dphys-swapfile for Raspberry Pi OS
ansible.builtin.apt:
name: dphys-swapfile
state: present
update_cache: true
when: swap_enabled
- name: Ensure dphys-swapfile is enabled and started
ansible.builtin.systemd:
name: dphys-swapfile
state: started
enabled: true
when: swap_enabled
- name: Set vm.swappiness to 10 (default)
ansible.builtin.sysctl:
name: vm.swappiness
value: "10"
state: present
reload: true
when: swap_enabled
- name: Turn on all swap
ansible.builtin.command: swapon -a
changed_when: false
failed_when: false
when: swap_enabled
# --- VERIFICATION ---
- 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