
AnsibleをWeb GUIで無料で使う、となれば「Ansible AWX」だと思っていたけど、GitHubのAnsible AWXプロジェクトページによれば大規模なリファクタリング中で2024/07/02を最後にリリースを一時停止中らしい。
The last release of this repository was released on Jul 2, 2024. Releases of this project are now paused during a large scale refactoring.
停止してもう1年以上経つし、Ansible AWXはKubernetesが必要で巨大で複雑だから、代替はないかと探してみたら Semaphore UI (GitHub) が良さそうだったので試してみた。
参考:
Semaphore UI
Ansible AWXのビジュアライザやワークフローに相当するものはなさそう。
Ansibleの他にもTerraformやOpenTofuやTerragrant、BashやPowerShellやPythonのスクリプトもタスクとして実行できるのは面白い。
インストール
インストールは GitHub の Getting Started にあるとおり、いくつかの方法がある。
docker composeを好きに打てる環境があるなら、Getting Startedから飛べる Container Configurator を使って docker-compose.yml を生成、ダウンロードして docker compose up -d するのが楽だと思う。
データは永続化しつつ、ローカルでちょっと試すだけなら以下で充分。
services:
semaphore:
ports:
- 3000:3000
image: semaphoreui/semaphore:v2.16.18
environment:
SEMAPHORE_DB_DIALECT: sqlite
SEMAPHORE_ADMIN: admin
SEMAPHORE_ADMIN_PASSWORD: changeme
SEMAPHORE_ADMIN_NAME: Admin
SEMAPHORE_ADMIN_EMAIL: admin@localhost
SEMAPHORE_SCHEDULE_TIMEZONE: "Asia/Tokyo"
volumes:
- semaphore_data:/var/lib/semaphore
- semaphore_config:/etc/semaphore
- semaphore_tmp:/tmp/semaphore
volumes:
semaphore_data:
semaphore_config:
semaphore_tmp:
上記を書いた docker-compose.yml を用意して、同じディレクトリで起動するだけ。
nissy@server-deb12:~/docker/semaphore$ ls
docker-compose.yml
nissy@server-deb12:~/docker/semaphore$ docker compose up -d
[+] Running 5/5
✔ Network semaphore_default Created 0.1s
✔ Volume "semaphore_semaphore_tmp" Created 0.0s
✔ Volume "semaphore_semaphore_data" Created 0.0s
✔ Volume "semaphore_semaphore_config" Created 0.0s
✔ Container semaphore-semaphore-1 Started
指定したポートでリッスンしている。
nissy@server-deb12:~/docker/semaphore$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
9dfe42aa3074 semaphoreui/semaphore:v2.16.18 "/sbin/tini -- /usr/…" 2 minutes ago Up 2 minutes 0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp semaphore-semaphore-1
nissy@server-deb12:~/docker/semaphore$ ss -lnt | grep :3000
LISTEN 0 4096 0.0.0.0:3000 0.0.0.0:*
LISTEN 0 4096 [::]:3000 [::]:*
Webブラウザでアクセスすればログインページが表示される。

docker-compose.yml で指定した SEMAPHORE_ADMIN と SEMAPHORE_ADMIN_PASSWORD でログインすれば以下の初期画面が表示される。

使い方
別途書く。