All checks were successful
ci/woodpecker/push/linting Pipeline was successful
117 lines
2.8 KiB
YAML
117 lines
2.8 KiB
YAML
---
|
|
|
|
# create directories
|
|
- name: "create semaphore directories"
|
|
ansible.builtin.file:
|
|
path: "{{ item }}"
|
|
owner: "1001"
|
|
group: "1001"
|
|
state: "directory"
|
|
mode: "0775"
|
|
loop:
|
|
- "/mnt/mitogen"
|
|
- "/mnt/semaphore"
|
|
- "/mnt/semaphore/config"
|
|
- "/mnt/semaphore/data"
|
|
- "/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"
|
|
|
|
# install mitogen
|
|
- name: "install mitogen"
|
|
|
|
# tell git to ignore certs
|
|
environment:
|
|
GIT_SSL_NO_VERIFY: "true"
|
|
|
|
# git checkout
|
|
ansible.builtin.git:
|
|
version: "v{{ mitogen_version }}"
|
|
dest: "/mnt/mitogen"
|
|
repo: "https://github.com/mitogen-hq/mitogen"
|
|
|
|
# fix ownership
|
|
- name: "set mitogen ownership"
|
|
ansible.builtin.file:
|
|
path: "/mnt/mitogen"
|
|
owner: "1001"
|
|
group: "1001"
|
|
recurse: true
|
|
changed_when: false
|
|
|
|
# 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: "cr.simoncor.net/dockerhub/semaphoreui/semaphore:v2.18.3"
|
|
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"
|
|
- "/mnt/mitogen:/tmp/mitogen"
|
|
|
|
ports:
|
|
- "3000:3000/tcp"
|
|
|
|
env:
|
|
|
|
# semaphore
|
|
SEMAPHORE_DB_DIALECT: "sqlite"
|
|
SEMAPHORE_TOTP_ALLOW_RECOVERY: "True"
|
|
SEMAPHORE_TOTP_ENABLED: "True"
|
|
SEMAPHORE_SCHEDULE_TIMEZONE: "Europe/Amsterdam"
|
|
|
|
# semaphore email
|
|
SEMAPHORE_EMAIL_SENDER: "{{ semaphore_email_sender }}"
|
|
SEMAPHORE_EMAIL_USERNAME: "{{ semaphore_email_username }}"
|
|
SEMAPHORE_EMAIL_HOST: "{{ semaphore_email_host }}"
|
|
SEMAPHORE_EMAIL_PORT: "{{ semaphore_email_port }}"
|
|
SEMAPHORE_EMAIL_PASSWORD: "{{ semaphore_email_password }}"
|
|
SEMAPHORE_EMAIL_SECURE: "True"
|
|
SEMAPHORE_EMAIL_TLS: "True"
|
|
|
|
# global
|
|
TZ: "{{ timezone }}"
|