#!/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