September 4, 2025

【Semaphore UI】AnsibleをWeb GUIで使う【Ansible AWX代替】

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 でログインすれば以下の初期画面が表示される。

使い方

別途書く。

© 2020 nissy-lab.com