Ansible Collection to manage and deploy Semaphore UI in Docker.
The Collection can be installed from Ansible Galaxy:
ansible-galaxy collection install adfinis.semaphoreuiAlternatively put the collection into a requirements.yml file:
---
collections:
- name: adfinis.semaphoreuiAnsible role to deploy and manage Semaphore UI servers and runners using Docker Compose.
- Works with the free version of Semaphore UI and Semaphore UI Pro.
- Optional Caddy reverse proxy for easy HTTPS
- Supports multiple database backends (sqlite (default), postgres, mysql).
- Ability to run different Ansible versions on the Semaphore UI Runner for backwards compatibility with older systems.
The Ansible role expect two host groups: servers (required!), runners (optional).
The individual server and runner tasks are only applied to hosts in their relative host group.
A simple example:
INI:
[servers]
vm-semaphore-server-01.example.com
[runners]
vm-semaphore-runner-01.example.com
vm-semaphore-runner-02.example.comYAML:
---
servers:
hosts:
vm-semaphore-server-01.example.com:
runners:
hosts:
vm-semaphore-runner-01.example.com:
vm-semaphore-runner-02.example.com:All arguments can be found in roles/semaphore/meta/arguments_specs.yml. You can display them with ansible-doc:
ansible-doc -t role adfinis.semaphoreui.semaphoreThe following variables are required:
semaphore_address: Public domain or IP address for the Semaphore instance.semaphore_admin_username: Username for the Semaphore UI admin account.semaphore_admin_password: Password for the Semaphore UI admin account.
The Ansible Collection features a playbook to call the role adfinis.semaphoreui.semaphore without having to write one yourself:
ansible-playbook adfinis.semaphoreui.semaphore_playbookThe Ansible collection adfinis.semaphore was written by: