semaphore
Introduction
Semaphore 它是一個免費、開源且輕量級的 Web UI,讓 Ansible 的使用變得更加輕鬆便捷。
Semaphore 的優勢
- 簡化 Ansible 的操作: Semaphore 提供了直觀的圖形界面,讓你擺脫繁瑣的命令列操作,輕鬆管理 Ansible playbook。
- 集中化的 playbook 管理: 可以將所有的 playbook 集中存放在 Git 倉庫中,方便版本控制和團隊協作。
- 多環境管理: Semaphore 支援多環境管理,例如開發、測試和生產環境,讓你在不同環境中輕鬆執行 playbook。
- 任務排程: 你可以使用 cron 表達式來設定 playbook 的執行時間,實現自動化任務排程。
- 用戶管理: Semaphore 提供了用戶管理功能,方便團隊成員之間的權限控制。
- 完整的任務歷史記錄: Semaphore 會記錄所有任務的執行歷史,方便你追蹤和除錯。
安裝 Semaphore
Semaphore 提供了多種安裝方式,例如:
- 使用 snap 命令安裝
- 使用 Linux 套件安裝 (Debian 或 Red Hat)
- 使用 Docker 容器安裝 (推薦)
---
volumes:
semaphore-mysql:
driver: local
services:
mysql:
image: docker.io/library/mysql:8.3
hostname: mysql
volumes:
- semaphore-mysql:/var/lib/mysql
environment:
- MYSQL_RANDOM_ROOT_PASSWORD=yes
- MYSQL_DATABASE=semaphore
- MYSQL_USER=semaphore
- MYSQL_PASSWORD=secret-password # change!
restart: unless-stopped
semaphore:
container_name: ansiblesemaphore
image: docker.io/semaphoreui/semaphore:v2.10.35
user: "${UID}:${GID}"
ports:
- 3000:3000
environment:
- SEMAPHORE_DB_USER=semaphore
- SEMAPHORE_DB_PASS=secret-password # change!
- SEMAPHORE_DB_HOST=mysql
- SEMAPHORE_DB_PORT=3306
- SEMAPHORE_DB_DIALECT=mysql
- SEMAPHORE_DB=semaphore
- SEMAPHORE_PLAYBOOK_PATH=/tmp/semaphore/
- SEMAPHORE_ADMIN_PASSWORD=secret-admin-password # change!
- SEMAPHORE_ADMIN_NAME=admin
- SEMAPHORE_ADMIN_EMAIL=admin@localhost
- SEMAPHORE_ADMIN=admin
- SEMAPHORE_ACCESS_KEY_ENCRYPTION= # add to your access key encryption ! command: head -c32 /dev/urandom | base64
- ANSIBLE_HOST_KEY_CHECKING=false # (optional) change to true if you want to enable host key checking
volumes:
- ./inventory/:/inventory:ro
- ./authorized-keys/:/authorized-keys:ro
- ./config/:/etc/semaphore:rw
restart: unless-stopped
depends_on:
- mysql
使用 Semaphore
Semaphore 設定步驟
Here is the text extracted from the image:
- At Inventory set host info (連線到哪個server/Group)
- At key store (ssh key / sudo user key)
- At Enviroment Variables Set up Environments (empty is ok)
- At Repositories set up (git remote)
- In the repo Create Playbooks and push (will clone from git remote everytime then excute)
- At Task Templates set up the playbook and run it 總結
Semaphore 是一個功能強大且易於使用的工具,它可以幫助你更好地管理和執行 Ansible playbook/ Terraform/ Powershel/ Bash。無論你是 Ansible 新手還是經驗豐富的用戶,Semaphore 都能提升你的工作效率。