Ansible Semaphore · 1 min read · Oct 19, 2025
Debian 12にAnsible Semaphoreをインストールする方法

Ansible Semaphoreは、Ansibleプレイブック用のオープンソースのWeb UIです。これにより、Webブラウザを介してAnsible自動化を使用したデプロイが可能になります。Ansible Semaphoreは完全にGoで書かれています。Linux、Windows、macOSで実行できます。
Ansible Semaphoreは、直感的で応答性の高いWeb管理ダッシュボードを介してAnsibleによるデプロイを可能にします。常に構成をロールバックおよび復元し、環境、シークレット、インベントリ、アクセスキーを管理できます。また、詳細なログと通知を伴ってスケジュールに従ってプレイブックを実行することもできます。
このガイドでは、Debian 12サーバーにAnsible Semaphoreをインストールする手順を説明します。PostgreSQLをデータベースとして、NginxをリバースプロキシとしてSemaphoreをインストールします。
前提条件
このガイドを始めるには、以下のものを用意してください:
- Debian 12サーバー。
- 管理者権限を持つ非ルートユーザー。
依存関係のインストール
Ansible Semaphoreをインストールするには、システムにAnsible、PostgreSQL、Nginxなどの依存関係をインストールする必要があります。PostgreSQLをデータベースとして、Nginxをリバースプロキシとして使用します。
まず、以下のコマンドを実行してDebianパッケージインデックスを更新し、ansible、postgresqlデータベース、nginxウェブサーバーなどの依存関係をインストールします。
sudo apt update
sudo apt install git curl wget software-properties-common ansible postgresql nginxインストールを確認するためにYを入力します。

インストールが完了したら、以下のコマンドでpostgresqlサービスを確認します。
sudo systemctl is-enabled postgresql
sudo systemctl status postgresqlpostgresqlサービスが実行中であることが確認できます。

次に、以下のコマンドでnginxサービスのステータスを確認します。
sudo systemctl is-enabled nginx
sudo systemctl status nginx以下に示すように、nginxウェブサーバーが実行中であることが確認できます。

最後に、以下のコマンドを使用してansibleのバージョンを確認します。Ansible 2.14がDebianシステムにインストールされているはずです。
ansible --version
データベースの設定
依存関係をインストールしたので、PostgreSQLを設定し、Ansible Semaphoreが使用する新しいデータベースとユーザーを作成します。
以下のコマンドでPostgreSQLサーバーにログインします。
sudo -u postgres psql次に、以下のクエリを実行して新しいデータベースsemaphoredbとユーザーsemaphoreを作成します。パスワードはあなたの情報に合わせて調整してください。
CREATE USER semaphore WITH PASSWORD 'passw0rd';
CREATE DATABASE semaphoredb OWNER semaphore;次に、以下のクエリを実行してPostgreSQLのデータベースとユーザーのリストを確認します。新しいユーザーsemaphoreとデータベースsemaphoredbが利用可能であることが確認できます。
du
l最後に、quitと入力してPostgreSQLから退出します。

Ansible Semaphoreのインストール
Ansible Semaphoreは、Debian/Ubuntuを含むさまざまなLinuxディストリビューション用のパッケージを提供しています。Ansible SemaphoreのDEBファイルをダウンロードし、dpkgコマンドでインストールできます。
以下のコマンドでAnsible Semaphoreのdebianパッケージをダウンロードします。
VER=$(curl -s https://api.github.com/repos/semaphoreui/semaphore/releases/latest|grep tag_name | cut -d '"' -f 4|sed 's/v//g')
wget -q https://github.com/semaphoreui/semaphore/releases/download/v${VER}/semaphore_${VER}_linux_amd64.debダウンロードが完了したら、以下のdpkgコマンドでAnsible Semaphoreをインストールします。
sudo dpkg -i semaphore_${VER}_linux_amd64.deb以下に示すように、インストールが完了したことが確認できます。

次に、以下のコマンドを実行してsemaphoreバイナリを探し、/usr/bin/semaphoreに存在するはずです。
which semaphore以下のコマンドでAnsible Semaphoreのバージョンを確認します。Ansible Semaphore 2.9がインストールされていることが確認できます。
semaphore version
semaphore help
Ansible Semaphoreの設定
このセクションでは、Ansible Semaphoreのインストールディレクトリを設定し、PostgreSQLとSemaphoreを統合し、その後、Semaphoreの管理ユーザーとパスワードを設定します。その後、Semaphoreをバックグラウンドでsystemdサービスとして実行します。
新しい設定ディレクトリ/etc/semaphoreを作成し、その中に移動します。そして、semaphore setupコマンドを実行してAnsible Semaphoreを設定します。
mkdir -p /etc/semaphore; cd /etc/semaphore
semaphore setup- PostgreSQLをデータベースとして使用するために
3を入力します。 - デフォルトのプレイブックディレクトリを設定するために
/opt/playbookを入力します。 - ENTERを押してパブリックURLをデフォルトのままにします。
- ENTERを押してデフォルトの通知設定を使用します。
- 管理ユーザー名、パスワード、メールアドレスを入力します。これはAnsible SemaphoreのWebアプリケーションにログインするために使用されます。

プロセスが完了すると、以下の確認メッセージが表示されます。

Ansible Semaphoreを設定したので、新しいsystemdサービスを作成し、Ansible Semaphoreをバックグラウンドで実行します。
新しいsystemdサービスファイル/etc/systemd/system/semaphore.serviceをnanoエディタで作成します。
sudo nano /etc/systemd/system/semaphore.service以下の設定を挿入します。
[Unit]
Description=Semaphore Ansible
Documentation=https://github.com/ansible-semaphore/semaphore
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/bin/semaphore service --config=/etc/semaphore/config.json
SyslogIdentifier=semaphore
Restart=always
[Install]
WantedBy=multi-user.targetファイルを保存してエディタを終了します。
次に、以下のsystemctlコマンドを実行してsystemdマネージャーをリロードし、変更を適用します。
sudo systemctl daemon-reload最後に、以下のコマンドを実行してsemaphoreサービスを開始および有効にします。そして、サービスが実行中であることを確認します。
sudo systemctl enable --now semaphore
sudo systemctl status semaphore以下に示すように、semaphoreサービスが実行中であることが確認できます。デフォルトでは、ポート3000で実行されています。

Nginxをリバースプロキシとして設定する
Semaphoreが実行中になったので、NginxをSemaphoreインストール用のリバースプロキシとして設定します。ドメイン名を用意しておいてください(ローカルまたは公開ドメイン名)。
新しいサーバーブロック設定/etc/nginx/sites-available/semaphore.confをnanoエディタで作成します。
sudo nano /etc/nginx/sites-available/semaphore.conf以下の設定を挿入して、ポート3000で実行されているAnsible SemaphoreのリバースプロキシとしてNginxを設定します。server_nameオプションをあなたのドメイン名に変更してください。
upstream semaphore {
server 127.0.0.1:3000;
}
server {
listen 80;
server_name auto.howtoforge.local;
client_max_body_size 0;
chunked_transfer_encoding on;
location / {
proxy_pass http://semaphore/;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_request_buffering off;
}
location /api/ws {
proxy_pass http://semaphore/api/ws;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Origin "";
}
}ファイルを保存してエディタを終了します。
次に、以下のコマンドを実行してサーバーブロックファイルsemaphore.confを有効にし、Nginxの構文を確認します。構文が正しければ、test is successful - syntax is okという出力が表示されます。
sudo ln -s /etc/nginx/sites-available/semaphore.conf /etc/nginx/sites-enabled/
sudo nginx -t最後に、以下のsystemctlコマンドを実行してNginxを再起動し、変更を適用します。
sudo systemctl restart nginx
Ansible SemaphoreをHTTPSで保護する
Ansible Semaphoreのインストールを保護するために、Nginxリバースプロキシの上にHTTPSを有効にします。Semaphore用のHTTPSを生成および構成するためにCertbotを使用します。
以下のコマンドでcertbotとpython3-certbot-nginxパッケージをインストールします。
sudo apt install certbot python3-certbot-nginx -yインストールが完了したら、以下のcertbotコマンドを実行してAnsible Semaphoreインストール用のSSL/TLS証明書を生成します。ドメインとメールアドレスはあなたの情報に変更してください。
sudo certbot --nginx --agree-tos --no-eff-email --redirect --email [email protected] -d auto.howtoforge.localプロセスが完了すると、SSL証明書は/etc/letsencrypt/live/domain.comディレクトリに保存され、SemaphoreインストールはHTTPSで保護されます。
Ansible Semaphoreにログインする
あなたのSemaphoreドメイン名、すなわちhttps://auto.howtoforge.local/にアクセスします。インストールが成功していれば、Ansible Semaphoreのログインページが表示されます。
管理ユーザー名とパスワードを入力し、SIGN INをクリックして確認します。

最初のプロジェクトの名前を入力し、Nextをクリックして続行します。

以下のようなSemaphoreダッシュボードが表示されます。

結論
おめでとうございます!Debian 12サーバーにAnsible Semaphoreのインストールが完了しました。PostgreSQLサーバーとNginxウェブサーバーを使用してSemaphoreをインストールしました。また、certbotとLetsencryptを通じてSemaphoreをHTTPSで保護しました。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。