- name: Install snapper community.general.xbps: name: - snapper state: present # https://wiki.archlinux.org/title/Snapper#updatedb - name: Disable updatedb indexing for snapshot directories ansible.builtin.copy: content: 'PRUNENAMES = ".snapshots"' dest: "/etc/updatedb.conf" owner: root group: root mode: 0644 force: true - name: Ensure snapper configs directory exists ansible.builtin.file: dest: "/etc/snapper/configs" state: directory recurse: true - name: Ensure root /.snapshots directory exists ansible.builtin.file: dest: "/.snapshots" state: directory mode: 0755 - name: Create root backup configuration ansible.builtin.template: src: snapper-configurations/root.j2 dest: "/etc/snapper/configs/root" mode: 0640 force: true # ensure contents are always exact - name: Ensure home /.snapshots directory exists ansible.builtin.file: dest: "/home/.snapshots" state: directory mode: 0755 - name: Create homedir backup configuration ansible.builtin.template: src: snapper-configurations/home.j2 dest: "/etc/snapper/configs/home" mode: 0640 force: true - name: Add snap manual safety command ansible.builtin.copy: src: snapper-snap-script dest: "/usr/bin/snap" owner: root group: root mode: 0755 # For now we never activate the snapper daemon # Does not work without elogind? # Using snooze (i.e. cron) enabled recurring # backup tasks instead. # - name: Activate snapper service # ansible.builtin.file: # force: "yes" # src: "/etc/sv/snapperd" # dest: "/etc/runit/runsvdir/default/snapperd" # state: link # tags: never