From ece522074e9efbc0dd820dc1ca0b8d667e0b71d5 Mon Sep 17 00:00:00 2001 From: Hermes Agent service account Date: Tue, 26 May 2026 22:50:18 -0500 Subject: [PATCH] fix: switch semaphore role to podman_container + generate systemd (more reliable) --- ansible/roles/semaphore/tasks/main.yml | 40 ++++++++++++++++++-------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/ansible/roles/semaphore/tasks/main.yml b/ansible/roles/semaphore/tasks/main.yml index 35706e0..103a1a4 100644 --- a/ansible/roles/semaphore/tasks/main.yml +++ b/ansible/roles/semaphore/tasks/main.yml @@ -24,20 +24,36 @@ - "{{ semaphore_data_dir }}" - "{{ semaphore_config_dir }}" -- name: Create Quadlet file for Semaphore - ansible.builtin.template: - src: semaphore.container.j2 - dest: "/etc/containers/systemd/{{ semaphore_container_name }}.container" - owner: root - group: root - mode: "0644" +- name: Create and start Semaphore container + community.general.podman_container: + name: "{{ semaphore_container_name }}" + image: "{{ semaphore_image }}" + state: started + recreate: true + ports: + - "{{ semaphore_port }}:3000" + volumes: + - "{{ semaphore_data_dir }}:/var/lib/semaphore:Z" + - "{{ semaphore_config_dir }}:/etc/semaphore:Z" + env: + SEMAPHORE_DB_TYPE: "{{ semaphore_db_type }}" + SEMAPHORE_DB_PATH: "{{ semaphore_db_path }}" + SEMAPHORE_ADMIN: admin + SEMAPHORE_ADMIN_PASSWORD: "{{ vault_semaphore_admin_password }}" + SEMAPHORE_ACCESS_KEY_ENCRYPTION: "{{ vault_semaphore_access_key_encryption }}" + user: "{{ semaphore_user }}" -- name: Reload systemd daemon +- name: Generate systemd service for Semaphore + ansible.builtin.command: + cmd: podman generate systemd --name --new --files {{ semaphore_container_name }} + chdir: /etc/systemd/system + creates: "/etc/systemd/system/container-{{ semaphore_container_name }}.service" + become: true + become_user: "{{ semaphore_user }}" + +- name: Reload systemd and enable service ansible.builtin.systemd: daemon_reload: true - -- name: Ensure Semaphore container is started - ansible.builtin.systemd: - name: "{{ semaphore_container_name }}.service" + name: "container-{{ semaphore_container_name }}.service" state: started enabled: true \ No newline at end of file