--- # Server/Borgbackup: Install and Setup Borgbackup Backup Crobjob # Variables (must be set!): # - borgbackup_passphrase # - borgbackup_repo # - borgbackup_hostname - name: borgbackup - Install 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 when: - borgbackup_passphrase is defined - borgbackup_repo is defined - borgbackup_hostname is defined # copy backup script and enable cronjob - name: borgbackup - Copy Borgbackup script become: yes 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 when: - borgbackup_passphrase is defined - borgbackup_repo is defined - borgbackup_hostname is defined - name: borgbackup - Run Borgbackup script at 1:00 daily become: yes ansible.builtin.cron: name: "Create Backup" minute: "0" hour: "1" job: "/usr/local/bin/borgbackup.sh" when: - borgbackup_passphrase is defined - borgbackup_repo is defined - borgbackup_hostname is defined # safeguard, if the host variables were removed - name: borgbackup - Uninstall block: - name: borgbackup - Remove Borgbackup script if no borgbackup config become: yes ansible.builtin.file: path: /usr/local/bin/borgbackup.sh state: absent - name: borgbackup - Remove Cronjob if no borgbackup config become: yes ansible.builtin.cron: name: "Create Backup" minute: "0" hour: "1" job: "/usr/local/bin/borgbackup.sh" state: absent when: (borgbackup_passphrase is not defined) or (borgbackup_repo is not defined) or (borgbackup_hostname is not defined)