diff --git a/roles/backups/files/borg_backup.timer b/roles/backups/files/borg_backup.timer new file mode 100644 index 0000000..6ee4d8c --- /dev/null +++ b/roles/backups/files/borg_backup.timer @@ -0,0 +1,10 @@ +[Unit] +Description=BorgBase backup timer + +[Timer] +OnCalendar=daily +RandomizedDelaySec=900 +Persistent=true + +[Install] +WantedBy=timers.target diff --git a/roles/backups/tasks/main.yml b/roles/backups/tasks/main.yml index 94084bc..3a5a5d4 100644 --- a/roles/backups/tasks/main.yml +++ b/roles/backups/tasks/main.yml @@ -15,14 +15,14 @@ owner: root group: root mode: '0700' -# - name: Copy over script -# become: true -# ansible.builtin.copy: -# src: backup_script.sh -# dest: "{{ backups_script_path }}" -# owner: root -# group: root -# mode: '0700' +- name: Copy over script + become: true + ansible.builtin.copy: + src: backup_script.sh + dest: "{{ backups_script_path }}" + owner: root + group: root + mode: '0700' - name: Ensure directory for configuration file exists become: true ansible.builtin.file: @@ -39,3 +39,22 @@ owner: root group: root mode: '0400' +- name: Install BorgBase backup service file + become: true + ansible.builtin.template: + src: borg_backup.service.j2 + dest: "/lib/systemd/system/borg_backup.service" + mode: '0644' +- name: Install BorgBase backup timer file + become: true + ansible.builtin.copy: + src: borg_backup.timer + dest: "/lib/systemd/system/borg_backup.timer" + mode: '0644' +- name: Enable the newly added systemd timer + become: true + ansible.builtin.systemd_service: + daemon_reload: true + name: "borg_backup.timer" + state: started + enabled: true diff --git a/roles/backups/templates/borg_backup.service.j2 b/roles/backups/templates/borg_backup.service.j2 new file mode 100644 index 0000000..b8a6793 --- /dev/null +++ b/roles/backups/templates/borg_backup.service.j2 @@ -0,0 +1,15 @@ +[Unit] +Description=BorgBase backup service +Wants=network-online.target +After=network-online.target + +[Service] +Type=oneshot +User=root +Group=root +ExecStart={{ backups_script_path }} {{ backups_configuration_path }} +Environment="BORG_REPO={{ borg_base.repo_url }}" +Environment="BORG_PASSPHRASE={{ borg_backup_password }}" + +[Install] +WantedBy=default.target