From ce94ca49116d428d38edb927452327cb0d5989f8 Mon Sep 17 00:00:00 2001
From: hofmann <Jessica.Hofmann@slub-dresden.de>
Date: Mon, 17 Jul 2023 15:21:52 +0200
Subject: [PATCH] first init

---
 tasks/main.yml     | 41 +++++++++++++++++++++++++++++++++++++++++
 templates/timer.j2 | 27 +++++++++++++++++++++++++++
 2 files changed, 68 insertions(+)
 create mode 100644 tasks/main.yml
 create mode 100644 templates/timer.j2

diff --git a/tasks/main.yml b/tasks/main.yml
new file mode 100644
index 0000000..ede6ea2
--- /dev/null
+++ b/tasks/main.yml
@@ -0,0 +1,41 @@
+---
+---
+- block:
+
+    - name: Failing when timer_command is undefined
+      fail:
+          msg: Varible timer_command is not defined
+      when: item.value.timer_command is undefined
+      with_dict: "{{ timers }}"
+
+    - name: Uploading service file
+      template:
+          src: service.j2
+          dest: "{{ systemd_base_path | default('/etc/systemd/system') }}/{{ item.key }}.service"
+          owner: "{{ item.value.timer_user | default('root') }}"
+          group: "{{ item.value.timer_user | default('root') }}"
+          mode: 0644
+      with_dict: "{{ timers }}"
+      notify: Reload systemd
+
+    - name: Uploading timer file
+      template:
+          src: timer.j2
+          dest: "{{ systemd_base_path | default('/etc/systemd/system') }}/{{ item.key }}.timer"
+          owner: "{{ item.value.timer_user | default('root') }}"
+          group: "{{ item.value.timer_user | default('root') }}"
+          mode: 0644
+      with_dict: "{{ timers }}"
+      notify: Reload systemd
+
+    - name: Enabling timers
+      systemd:
+          name: "{{ item.key }}.timer"
+          state: restarted
+          enabled: true
+          masked: false
+          daemon_reload: true
+          scope: "{{ systemd_scope | default('system') }}"
+      with_dict: "{{ timers }}"
+
+  when: timers is defined
\ No newline at end of file
diff --git a/templates/timer.j2 b/templates/timer.j2
new file mode 100644
index 0000000..c7c8b0b
--- /dev/null
+++ b/templates/timer.j2
@@ -0,0 +1,27 @@
+[Unit]
+Description={{ item.key }} Timer
+
+[Timer]
+{% if item.value.timer_OnActiveSec is defined %}
+OnActiveSec={{ item.value.timer_OnActiveSec }}
+{% endif %}
+{% if item.value.timer_OnBootSec is defined %}
+OnBootSec={{ item.value.timer_OnBootSec }}
+{% endif %}
+{% if item.value.timer_OnStartupSec is defined %}
+OnStartupSec={{ item.value.timer_OnStartupSec }}
+{% endif %}
+{% if item.value.timer_OnUnitActiveSec is defined %}
+OnUnitActiveSec={{ item.value.timer_OnUnitActiveSec }}
+{% endif %}
+{% if item.value.timer_OnUnitInactiveSec is defined %}
+OnUnitInactiveSec={{ item.value.timer_OnUnitInactiveSec }}
+{% endif %}
+{% if item.value.timer_OnCalendar is defined %}
+OnCalendar={{ item.value.timer_OnCalendar }}
+Persistent={{ item.value.timer_persistent | default('false') }}
+{% endif %}
+AccuracySec={{ item.value.timer_AccuracySec | default('15s') }}
+
+[Install]
+WantedBy=timers.target
\ No newline at end of file
-- 
GitLab