--- - name: Automate borg backup hosts: all become: yes tasks: - name: Check if Borg backup script exist stat: path: /usr/local/sbin/backup.bash register: backup_status - name: Check if Borg check script exists stat: path: /usr/local/sbin/check_backup.bash register: check_status - name: Synchronize Borg scripts when: backup_status.stat.exists == False or check_status.stat.exists == False synchronize: src: ./borg_scripts/ dest: /usr/local/sbin/ rsync_opts: - "--chown=root:root" - "--chmod=0700" - name: Create borg backup systemd service copy: content: | [Unit] Description=Borg backup After=network.target [Service] Type=oneshot ExecStart=/usr/local/sbin/borg_backup.sh User=root Group=root dest: /etc/systemd/system/borg_backup.service - name: Create borg backup systemd timer copy: content: | [Unit] Description=Borg backup timer [Timer] OnCalendar=*-*-* 05:00:00 Persistent=true [Install] WantedBy=timers.target dest: /etc/systemd/system/borg_backup.timer - name: Start and enable borg backup timer systemd: name: borg_backup.timer enabled: yes state: started