How to Set Up Semaphore UI for Ansible
Semaphore provides a web-based interface for running Ansible playbooks, making it easier to manage automation across your Breeze fleet without relying on the command line for every task.
Installation
Install Semaphore on a dedicated management Breeze:
wget https://github.com/semaphoreui/semaphore/releases/download/v2.9.0/semaphore_2.9.0_linux_amd64.deb
sudo dpkg -i semaphore_2.9.0_linux_amd64.deb
Initial Setup
Run the interactive setup to configure the database and admin user:
semaphore setup
You will be prompted for a database backend (MySQL, PostgreSQL, or BoltDB), an admin username, and a password. For production use, choose MySQL or PostgreSQL.
Running as a Service
Create a systemd unit file at /etc/systemd/system/semaphore.service:
[Unit]
Description=Semaphore Ansible UI
After=network.target
[Service]
ExecStart=/usr/bin/semaphore server --config /etc/semaphore/config.json
User=semaphore
Restart=always
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now semaphore
Key Features
- Schedule playbook runs on a cron-like schedule
- Track execution history with detailed logs for each run
- Manage SSH keys and inventory files through the UI
- Set up team access with role-based permissions
- Receive notifications on task completion or failure
Access the dashboard at http://your-breeze-ip:3000 and configure your first project by adding a Git repository containing your playbooks.