--- - name: Ensure cast group exists ansible.builtin.group: name: "{{ semaphore_group }}" state: present system: true - name: Ensure cast user exists ansible.builtin.user: name: "{{ semaphore_user }}" group: "{{ semaphore_group }}" shell: /bin/bash create_home: true state: present - name: Create Semaphore data directories with correct ownership ansible.builtin.file: path: "{{ item }}" state: directory owner: "1000" group: "1000" mode: "0755" become: true loop: - "{{ semaphore_data_dir }}" - "{{ semaphore_config_dir }}" - name: Create and start Semaphore container containers.podman.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 }}" - name: Generate systemd service for the container 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 - name: Reload systemd and enable service ansible.builtin.systemd: daemon_reload: true name: "container-{{ semaphore_container_name }}.service" state: started enabled: true