From ef5ac13b358d8c8c8615c39ba1e428afb16ff96c Mon Sep 17 00:00:00 2001 From: spmfox Date: Mon, 8 Sep 2025 20:50:17 -0400 Subject: adding support for systemd files --- roles/containers/tasks/main.yml | 18 ++++++++++++++++++ roles/containers/tasks/systemd_create.yml | 21 +++++++++++++++++++++ roles/containers/tasks/systemd_remove.yml | 14 ++++++++++++++ roles/containers/tasks/systemd_start.yml | 8 ++++++++ roles/containers/tasks/systemd_stop.yml | 8 ++++++++ 5 files changed, 69 insertions(+) create mode 100644 roles/containers/tasks/systemd_create.yml create mode 100644 roles/containers/tasks/systemd_remove.yml create mode 100644 roles/containers/tasks/systemd_start.yml create mode 100644 roles/containers/tasks/systemd_stop.yml 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 }}" -- cgit