84 lines
1.9 KiB
YAML
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 }}"
|