log2ram/ansible_playbook/install_log2ram.yml

77 lines
2.1 KiB
YAML

#!/usr/bin/env ansible-playbook
---
# Configure Raspberry Pi to log to RAM, with occasional SD card sync
# to reduce SD card writes
# Usage: ansible-playbook -e 'log2ram_size=80M' install_log2ram.yml
- hosts: all
gather_facts: true
gather_subset: min
become: true
vars:
apt_keyring_file: azlux.fr.log2ram.gpg
apt_sources_file: log2ram.list
log2ram_size: 40M
log2ram_path_disk: /var/log
log2ram_use_z2lr: true
log2ram_comp_alg: lz4
log2ram_log_disk_size: 100M
tasks:
- name: "Add /etc/apt/sources.list.d/{{ apt_sources_file }}"
copy:
content: "deb http://packages.azlux.fr/debian/ {{ ansible_facts['distribution_release'] }} main\n"
dest: /etc/apt/sources.list.d/{{ apt_sources_file }}
mode: 0644
owner: root
register: source_list
- name: Import apt key
apt_key:
url: https://azlux.fr/repo.gpg.key
id: 98B824A5FA7D3A10FDB225B7CA548A0A0312D8E6
keyring: /etc/apt/trusted.gpg.d/{{ apt_keyring_file }}
register: dl_key
- name: Remove tilde backup file {{ apt_keyring_file }}~
file:
path: /etc/apt/trusted.gpg.d/{{ apt_keyring_file }}~
state: absent
- name: update apt cache
apt:
update_cache: true
when: dl_key is changed or source_list is changed
- name: Install log2ram
apt:
pkg:
- log2ram
register: pkg
notify: Restart log2ram
- name: Set config options
lineinfile:
path: /etc/log2ram.conf
regexp: "{{ item.regexp }}"
line: "{{ item.line }}"
backrefs: true
loop:
- {regexp: '^SIZE=(.*)$', line: 'SIZE={{ log2ram_size }}'}
- {regexp: '^PATH_DISK=(.*)$', line: 'PATH_DISK="{{ log2ram_path_disk }}"'}
- {regexp: '^ZL2R=(.*)$', line: 'ZL2R={{ log2ram_use_z2lr|lower }}'}
- {regexp: '^COMP_ALG=(.*)$', line: 'COMP_ALG={{ log2ram_comp_alg }}'}
- {regexp: '^LOG_DISK_SIZE=(.*)$', line: 'LOG_DISK_SIZE={{ log2ram_log_disk_size }}'}
notify: Restart log2ram
handlers:
- name: Restart log2ram
systemd:
name: log2ram
state: restarted