semaphore/tasks/install.yaml
2025-10-02 14:29:12 +02:00

84 lines
1.9 KiB
YAML

---
# create directories
- name: "create semaphore directories"
ansible.builtin.file:
path: "{{ item }}"
owner: "1001"
group: "1001"
state: "directory"
mode: "0775"
loop:
- "/mnt/semaphore"
- "/mnt/semaphore/data"
- "/mnt/semaphore/config"
- "/mnt/semaphore/ssh"
- "/mnt/semaphore/tmp"
# semaphore ssh config
- name: "ssh config"
ansible.builtin.template:
src: "templates/semaphore/config.j2"
dest: "/mnt/semaphore/ssh/config"
owner: "1001"
group: "1001"
mode: "0640"
# semaphore ansible ssh key
- name: "ansible ssh config"
ansible.builtin.template:
src: "templates/semaphore/ansible.key.j2"
dest: "/mnt/semaphore/ssh/ansible.key"
owner: "1001"
group: "1001"
mode: "0400"
# run semaphore
- name: "run semaphore"
community.docker.docker_container:
# container_default_behavior
auto_remove: "no"
container_default_behavior: "no_defaults"
detach: "yes"
init: "no"
interactive: "no"
log_driver: "json-file"
log_options:
max-size: "5m"
max-file: "3"
memory: "0"
paused: "no"
privileged: "no"
pull: "always"
read_only: "no"
state: "started"
tty: "no"
# semaphore
name: "semaphore-app"
image: "docker.io/semaphoreui/semaphore:v2.16.31"
image_name_mismatch: "recreate"
restart_policy: "unless-stopped"
network_mode: "host"
volumes:
- "/mnt/semaphore/ssh/config:/home/semaphore/.ssh/config"
- "/mnt/semaphore/ssh/ansible.key:/home/semaphore/.ssh/ansible.key"
- "/mnt/semaphore/config:/etc/semaphore"
- "/mnt/semaphore/data:/var/lib/semaphore"
- "/mnt/semaphore/tmp:/tmp/semaphore"
ports:
- "3000:3000/tcp"
env:
# semaphore
SEMAPHORE_DB_DIALECT: "sqlite"
SEMAPHORE_TOTP_ALLOW_RECOVERY: "True"
SEMAPHORE_TOTP_ENABLED: "True"
SEMAPHORE_SCHEDULE_TIMEZONE: "Europe/Amsterdam"
# global
TZ: "{{ timezone }}"