Files
ansible_role_proxmox_provision/tasks/ram.yml
Jose 06834ae66b
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 13s
Gitleaks Scan / gitleaks (push) Successful in 5s
Markdown Lint / markdown-lint (push) Successful in 5s
ai-reviews / Review PR (pull_request) Successful in 12s
PR check / Gitleaks (pull_request) Successful in 4s
PR check / lint tests (pull_request) Successful in 16s
PR check / labeler (pull_request) Successful in 3s
PR check / handle_failures (pull_request) Has been skipped
PR check / handle_success (pull_request) Successful in 1s
chore 📦: Update log2ram URL to use a specific tag
This commit updates the URL for log2ram to point to a specific tag rather than using the master branch. This ensures that we are always using a stable version of the software.
2026-02-16 18:26:33 +01:00

107 lines
2.9 KiB
YAML

---
- name: ram | Ensure Debian family
ansible.builtin.assert:
that: ansible_os_family == "Debian"
fail_msg: "This role only supports Debian/Proxmox systems."
- name: ram | Gather only memory fact
ansible.builtin.setup:
filter: ansible_memtotal_mb
- name: ram | Calculate log2ram size
ansible.builtin.set_fact:
log2ram_size_mb: >-
{{
[
log2ram_min_size_mb | int,
[
(ansible_memtotal_mb | int * log2ram_ram_percent | int / 100) | int,
log2ram_max_size_mb | int
] | min
] | max
}}
- name: ram | Convert size to M format
ansible.builtin.set_fact:
log2ram_size: "{{ log2ram_size_mb }}M"
# - name: Install log2ram
- name: ram | Install dependencies
ansible.builtin.apt:
name:
- rsync
- curl
- ca-certificates
state: present
update_cache: yes
cache_valid_time: 3600 # Only run apt-get update if it hasn't run in the last hour
- name: ram | Download log2ram
ansible.builtin.get_url:
url: https://github.com/azlux/log2ram/archive/refs/tags/1.7.2.tar.gz
dest: /tmp/log2ram.tar.gz
mode: '0644'
register: download_archive
- name: ram | Logic to extract and install log2ram
when: download_archive.changed # noqa: no-handler
block:
- name: ram | Extract log2ram
ansible.builtin.unarchive:
src: "/tmp/log2ram.tar.gz"
dest: "/tmp"
remote_src: yes
- name: ram | Install log2ram
ansible.builtin.command: bash install.sh
args:
chdir: "/tmp/log2ram-master"
# 'creates' makes the command idempotent by checking for the binary
creates: /usr/local/bin/log2ram
notify: Restart log2ram
# Configure log2ram
- name: ram | Configure log2ram settings
ansible.builtin.lineinfile:
path: /etc/log2ram.conf
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
backup: yes
loop:
- { regexp: '^#?SIZE=', line: "SIZE={{ log2ram_size }}" }
- { regexp: '^#?USE_RSYNC=', line: "USE_RSYNC=true" }
notify: Restart log2ram
# Keep journald fully in RAM
- name: ram | Configure journald storage volatile
ansible.builtin.lineinfile:
path: /etc/systemd/journald.conf
regexp: '^#?Storage='
line: "Storage=volatile"
backup: yes
notify: Restart journald
- name: ram | Limit journald runtime size
ansible.builtin.lineinfile:
path: /etc/systemd/journald.conf
regexp: '^#?RuntimeMaxUse='
line: "RuntimeMaxUse={{ journald_runtime_max_use }}"
notify: Restart journald
# Enable log2ram on boot
- name: ram | Configure memory tuning sysctl
ansible.posix.sysctl:
name: "{{ item.name }}"
value: "{{ item.value }}"
state: present
sysctl_file: /etc/sysctl.d/99-proxmox-memory.conf
reload: yes
loop:
- { name: 'vm.swappiness', value: "{{ vm_swappiness }}" }
- { name: 'vm.dirty_ratio', value: "{{ vm_dirty_ratio }}" }
- { name: 'vm.dirty_background_ratio', value: "{{ vm_dirty_background_ratio }}" }