--- - name: Install community.general.pacman: name: borg state: present - name: Create SSH key directory ansible.builtin.file: path: /root/.ssh state: directory owner: root group: root mode: 0700 - name: Install SSH key ansible.builtin.copy: src: /home/xenrox/decrypted/ssh/{{ inventory_hostname }}.priv dest: /root/.ssh/id_rsa owner: root group: root mode: 0600 - name: Create secrets path ansible.builtin.file: path: /etc/.secrets state: directory owner: root group: root mode: 0700 - name: Install borg passphrase ansible.builtin.copy: src: /home/xenrox/decrypted/borg/{{ inventory_hostname }}.pass dest: /etc/.secrets/borg.pass owner: root group: root mode: 0600 - name: Create borg key path ansible.builtin.file: path: /root/.config/borg/keys state: directory owner: root group: root mode: 0700 - name: Install borg key ansible.builtin.copy: src: /home/xenrox/decrypted/borg/{{ inventory_hostname }}.key dest: /root/.config/borg/keys/borg.key owner: root group: root mode: 0600 - name: Install backup service ansible.builtin.copy: src: "{{ item }}" dest: "/etc/systemd/system/{{ item }}" owner: root group: root mode: 0644 with_items: - borg-backup.service - borg-backup.timer - name: Start and enable borg timer ansible.builtin.systemd: name: borg-backup.timer enabled: true state: started daemon_reload: true - name: Get installed packages ansible.builtin.package_facts: manager: pacman - name: Install borg backup script ansible.builtin.template: src: borg-backup.sh.j2 dest: /usr/local/bin/borg-backup.sh owner: root group: root mode: 0755 - name: Install mailcow backup script ansible.builtin.copy: src: backup-mailcow.sh dest: /usr/local/bin/backup-mailcow.sh owner: root group: root mode: 0755 when: inventory_hostname == "xenrox.net" - name: Install postgresql backup script ansible.builtin.copy: src: backup-postgresql.sh dest: /usr/local/bin/backup-postgresql.sh owner: root group: root mode: 0755 when: "'postgresql' in ansible_facts.packages" - name: Install sqlite backup script ansible.builtin.template: src: backup-sqlite.sh.j2 dest: /usr/local/bin/backup-sqlite.sh owner: root group: root mode: 0755 when: "'sqlite' in ansible_facts.packages" - name: Install docker backup script ansible.builtin.template: src: backup-docker.sh.j2 dest: /usr/local/bin/backup-docker.sh owner: root group: root mode: 0755 when: docker_services is defined and docker_services is iterable