--- # Server/Borgbackup: Install and Setup Borgbackup Backup Crobjob # Variables (must be set!): # - borgbackup_passphrase # - borgbackup_repo # - borgbackup_hostname - name: Borgbackup - Install when: - borgbackup_passphrase is defined - borgbackup_repo is defined - borgbackup_hostname is defined block: - name: Borgbackup - Install application ansible.builtin.include_tasks: "{{ item }}" with_first_found: - "borgbackup-{{ ansible_distribution }}.{{ ansible_distribution_release }}.yml" - "borgbackup-{{ ansible_distribution }}.yml" - "borgbackup-{{ (override_os_family is defined) | ternary(override_os_family, ansible_os_family) }}.yml" ignore_errors: true # copy backup script and enable cronjob - name: Borgbackup - Copy Borgbackup script become: true ansible.builtin.template: src: "{{ role_path }}/templates/borgbackup.sh" dest: /usr/local/bin/borgbackup.sh owner: "{{ ansible_user_id }}" group: "{{ ansible_user_id }}" mode: "0775" - name: Borgbackup - Run Borgbackup script at 1:00 daily become: true ansible.builtin.cron: name: "Create Backup" minute: "0" hour: "1" job: "/usr/local/bin/borgbackup.sh" # safeguard, if the host variables were removed - name: Borgbackup - Uninstall when: (borgbackup_passphrase is not defined) or (borgbackup_repo is not defined) or (borgbackup_hostname is not defined) block: - name: Borgbackup - Remove Borgbackup script if no borgbackup config become: true ansible.builtin.file: path: /usr/local/bin/borgbackup.sh state: absent - name: Borgbackup - Remove Cronjob if no borgbackup config become: true ansible.builtin.cron: name: "Create Backup" minute: "0" hour: "1" job: "/usr/local/bin/borgbackup.sh" state: absent