aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--roles/containers/tasks/main.yml18
-rw-r--r--roles/containers/tasks/systemd_create.yml21
-rw-r--r--roles/containers/tasks/systemd_remove.yml14
-rw-r--r--roles/containers/tasks/systemd_start.yml8
-rw-r--r--roles/containers/tasks/systemd_stop.yml8
5 files changed, 69 insertions, 0 deletions
diff --git a/roles/containers/tasks/main.yml b/roles/containers/tasks/main.yml
index 02ee577..17d26e5 100644
--- a/roles/containers/tasks/main.yml
+++ b/roles/containers/tasks/main.yml
@@ -2,16 +2,34 @@
tags:
- create
+- ansible.builtin.import_tasks: systemd_create.yml
+ tags:
+ - create
+
- ansible.builtin.import_tasks: quadlet_start.yml
tags:
- start
+- ansible.builtin.import_tasks: systemd_start.yml
+ tags:
+ - start
+
- ansible.builtin.import_tasks: quadlet_stop.yml
tags:
- never
- stop
+- ansible.builtin.import_tasks: systemd_stop.yml
+ tags:
+ - never
+ - stop
+
- ansible.builtin.import_tasks: quadlet_remove.yml
tags:
- never
- remove
+
+- ansible.builtin.import_tasks: systemd_remove.yml
+ tags:
+ - never
+ - remove
diff --git a/roles/containers/tasks/systemd_create.yml b/roles/containers/tasks/systemd_create.yml
new file mode 100644
index 0000000..941851b
--- /dev/null
+++ b/roles/containers/tasks/systemd_create.yml
@@ -0,0 +1,21 @@
+- name: Create systemd directory
+ ansible.builtin.file:
+ path: "{{ containers_homedir }}/.config/systemd/user"
+ state: "directory"
+
+- name: Copy systemd files into systemd directory
+ ansible.builtin.copy:
+ src: "{{ item.path }}/{{ item.file }}"
+ dest: "{{ containers_homedir }}/.config/systemd/user/{{ item.file }}"
+ remote_src: true
+ validate: "systemd-analyze verify %s"
+ loop_control:
+ label: "{{ item.name }} -> {{ item.file }}"
+ loop: "{{ containers_systemd }}"
+ register: systemd_files
+
+- name: Reload systemd daemon
+ ansible.builtin.systemd:
+ daemon_reload: true
+ scope: "user"
+ when: systemd_files.changed
diff --git a/roles/containers/tasks/systemd_remove.yml b/roles/containers/tasks/systemd_remove.yml
new file mode 100644
index 0000000..cda3051
--- /dev/null
+++ b/roles/containers/tasks/systemd_remove.yml
@@ -0,0 +1,14 @@
+- name: Remove systemd files from systemd directory
+ ansible.builtin.file:
+ path: "{{ containers_homedir }}/.config/systemd/user/{{ item.file }}"
+ state: "absent"
+ loop_control:
+ label: "{{ item.name }} -> {{ item.file }}"
+ loop: "{{ containers_systemd }}"
+ register: systemd_files
+
+- name: Reload systemd daemon
+ ansible.builtin.systemd:
+ daemon_reload: true
+ scope: "user"
+ when: systemd_files.changed
diff --git a/roles/containers/tasks/systemd_start.yml b/roles/containers/tasks/systemd_start.yml
new file mode 100644
index 0000000..f69f35d
--- /dev/null
+++ b/roles/containers/tasks/systemd_start.yml
@@ -0,0 +1,8 @@
+- name: Start systemd service
+ ansible.builtin.systemd_service:
+ name: "{{ item.name }}"
+ state: "started"
+ scope: "user"
+ loop_control:
+ label: "{{ item.name}}"
+ loop: "{{ containers_systemd }}"
diff --git a/roles/containers/tasks/systemd_stop.yml b/roles/containers/tasks/systemd_stop.yml
new file mode 100644
index 0000000..51e4d72
--- /dev/null
+++ b/roles/containers/tasks/systemd_stop.yml
@@ -0,0 +1,8 @@
+- name: Stop systemd service
+ ansible.builtin.systemd_service:
+ name: "{{ item.name }}"
+ state: "stopped"
+ scope: "user"
+ loop_control:
+ label: "{{ item.name}}"
+ loop: "{{ containers_systemd }}"