From e8dfce64b43cd3f8c9c78e5bce224be12529d4db Mon Sep 17 00:00:00 2001
From: Hannes Braun <hannes.braun@slub-dresden.de>
Date: Tue, 18 Jun 2024 10:31:18 +0200
Subject: [PATCH] Add systemd timer for simple backup

---
 .../etc/systemd/system/simple-backup.service  |  6 ++++
 files/etc/systemd/system/simple-backup.timer  | 10 +++++++
 handlers/main.yml                             |  4 +++
 tasks/main.yml                                | 28 +++++++++++++++++++
 4 files changed, 48 insertions(+)
 create mode 100644 files/etc/systemd/system/simple-backup.service
 create mode 100644 files/etc/systemd/system/simple-backup.timer
 create mode 100644 handlers/main.yml

diff --git a/files/etc/systemd/system/simple-backup.service b/files/etc/systemd/system/simple-backup.service
new file mode 100644
index 0000000..47a932b
--- /dev/null
+++ b/files/etc/systemd/system/simple-backup.service
@@ -0,0 +1,6 @@
+[Unit]
+Description=Simple Backup Service
+
+[Service]
+Type=oneshot
+ExecStart=/bin/bash /opt/simple-backup/simple-backup.sh
diff --git a/files/etc/systemd/system/simple-backup.timer b/files/etc/systemd/system/simple-backup.timer
new file mode 100644
index 0000000..486850c
--- /dev/null
+++ b/files/etc/systemd/system/simple-backup.timer
@@ -0,0 +1,10 @@
+[Unit]
+Description=Simple Backup Timer
+
+[Timer]
+OnCalendar=Mon-Sun *-*-* 00:02:00
+Persistent=false
+AccuracySec=15s
+
+[Install]
+WantedBy=timers.target
diff --git a/handlers/main.yml b/handlers/main.yml
new file mode 100644
index 0000000..c29fc61
--- /dev/null
+++ b/handlers/main.yml
@@ -0,0 +1,4 @@
+- name: Reload systemd
+  ansible.builtin.systemd:
+    daemon_reload: true
+  become: true
diff --git a/tasks/main.yml b/tasks/main.yml
index aa91f66..9be99a0 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -22,3 +22,31 @@
     group: root
     mode: '0644'
   become: true
+
+- name: Upload files and enable timer
+  block:
+    - name: Uploading service file
+      ansible.builtin.copy:
+        src: files/etc/systemd/system/simple-backup.service
+        dest: /etc/systemd/system/simple-backup.service
+        owner: root
+        group: root
+        mode: 0644
+
+    - name: Uploading timer file
+      ansible.builtin.copy:
+        src: files/etc/systemd/system/simple-backup.timer
+        dest: /etc/systemd/system/simple-backup.timer
+        owner: root
+        group: root
+        mode: 0644
+
+    - name: Enabling timers
+      ansible.builtin.systemd:
+        name: "simple-backup.timer"
+        enabled: true
+        state: started
+        masked: false
+        scope: system
+  notify: Reload systemd
+  become: true
-- 
GitLab