Files
homelab/ansible/roles/semaphore/tasks/main.yml
2026-05-26 22:50:55 -05:00

67 lines
2.1 KiB
YAML

---
- 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
ansible.builtin.file:
path: "{{ item }}"
state: directory
owner: "{{ semaphore_user }}"
group: "{{ semaphore_group }}"
mode: "0755"
loop:
- "{{ semaphore_data_dir }}"
- "{{ semaphore_config_dir }}"
- name: Pull Semaphore image
ansible.builtin.command:
cmd: "podman pull {{ semaphore_image }}"
become: true
become_user: "{{ semaphore_user }}"
changed_when: false
- name: Create and start Semaphore container
ansible.builtin.command:
cmd: >
podman run -d --name {{ semaphore_container_name }}
-p {{ semaphore_port }}:3000
-v {{ semaphore_data_dir }}:/var/lib/semaphore:Z
-v {{ semaphore_config_dir }}:/etc/semaphore:Z
-e SEMAPHORE_DB_TYPE={{ semaphore_db_type }}
-e SEMAPHORE_DB_PATH={{ semaphore_db_path }}
-e SEMAPHORE_ADMIN=admin
-e SEMAPHORE_ADMIN_PASSWORD={{ vault_semaphore_admin_password }}
-e SEMAPHORE_ACCESS_KEY_ENCRYPTION={{ vault_semaphore_access_key_encryption }}
--user {{ semaphore_user }}
{{ semaphore_image }}
become: true
become_user: "{{ semaphore_user }}"
register: container_run
changed_when: container_run.rc == 0
failed_when: container_run.rc != 0 and 'already in use' not in container_run.stderr
- 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
become_user: "{{ semaphore_user }}"
- name: Reload systemd and enable service
ansible.builtin.systemd:
daemon_reload: true
name: "container-{{ semaphore_container_name }}.service"
state: started
enabled: true