- name: Ensure necessary directories exists file: path: "{{ item }}" state: directory loop: - "{{ repository_path }}" - "{{ dbdumps_path }}" - "{{ autorestic_base }}" - name: Download and install restic apt: name: restic update_cache: yes - name: Install bzip2 apt: name: bzip2 update_cache: yes no_log: true - name: Download autorestic get_url: url: "https://github.com/cupcakearmy/autorestic/releases/download/v{{ autorestic_version }}/autorestic_{{ autorestic_version }}_linux_amd64.bz2" dest: /tmp/autorestic.bz2 - name: Extract and install autorestic executable shell: "bzcat /tmp/autorestic.bz2 > {{ autorestic_path }}" - name: Ensure autorestic has executable bit file: path: "{{ autorestic_path }}" mode: '0755' - name: Copy configuration template: src: "autorestic.yml" dest: "{{ autorestic_config_path }}" - name: Copy scripts template: src: "{{ item }}" dest: "{{ autorestic_base }}" mode: 0755 loop: - backup_db.sh - start_backup.sh - name: Ensure scripts are executable file: path: "{{ autorestic_base }}/{{ item }}" mode: 0755 loop: - backup_db.sh - start_backup.sh - name: Generate systemd timer and service template: src: "{{ item }}" dest: "/etc/systemd/system" loop: - autorestic.service - autorestic.timer # Remove when PR #197 is merged - name: Initialize Restic Rest repository shell: "RESTIC_PASSWORD='{{ restic_password }}' restic -r {{ repository_path }} init" failed_when: false # Waiting for PR #197 to be merged - name: Check configuration file is correct and create repositories if needed shell: "autorestic -c {{ autorestic_config_path }} check" - name: Ensure timer is activated systemd: name: autorestic.timer enabled: true state: started daemon_reload: true