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パッケージインデックスを更新し、ansiblepostgresqlデータベース、nginxウェブサーバーなどの依存関係をインストールします。

sudo apt update  
sudo apt install git curl wget software-properties-common ansible postgresql nginx

インストールを確認するためにYを入力します。

install deps

インストールが完了したら、以下のコマンドでpostgresqlサービスを確認します。

sudo systemctl is-enabled postgresql  
sudo systemctl status postgresql

postgresqlサービスが実行中であることが確認できます。

check postgresql

次に、以下のコマンドでnginxサービスのステータスを確認します。

sudo systemctl is-enabled nginx  
sudo systemctl status nginx

以下に示すように、nginxウェブサーバーが実行中であることが確認できます。

check nginx

最後に、以下のコマンドを使用してansibleのバージョンを確認します。Ansible 2.14がDebianシステムにインストールされているはずです。

ansible --version

check 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から退出します。

list database and user

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

以下に示すように、インストールが完了したことが確認できます。

download semaphore

次に、以下のコマンドを実行してsemaphoreバイナリを探し、/usr/bin/semaphoreに存在するはずです。

which semaphore

以下のコマンドでAnsible Semaphoreのバージョンを確認します。Ansible Semaphore 2.9がインストールされていることが確認できます。

semaphore version  
semaphore help

check semaphore

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アプリケーションにログインするために使用されます。

setup semaphore

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

create admin user

Ansible Semaphoreを設定したので、新しいsystemdサービスを作成し、Ansible Semaphoreをバックグラウンドで実行します。

新しいsystemdサービスファイル/etc/systemd/system/semaphore.servicenanoエディタで作成します。

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で実行されています。

semaphore service

Nginxをリバースプロキシとして設定する

Semaphoreが実行中になったので、NginxをSemaphoreインストール用のリバースプロキシとして設定します。ドメイン名を用意しておいてください(ローカルまたは公開ドメイン名)。

新しいサーバーブロック設定/etc/nginx/sites-available/semaphore.confnanoエディタで作成します。

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

semaphore nginx

Ansible SemaphoreをHTTPSで保護する

Ansible Semaphoreのインストールを保護するために、Nginxリバースプロキシの上にHTTPSを有効にします。Semaphore用のHTTPSを生成および構成するためにCertbotを使用します。

以下のコマンドでcertbotpython3-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をクリックして確認します。

login semaphore

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

create project

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

create dashboard

結論

おめでとうございます!Debian 12サーバーにAnsible Semaphoreのインストールが完了しました。PostgreSQLサーバーとNginxウェブサーバーを使用してSemaphoreをインストールしました。また、certbotとLetsencryptを通じてSemaphoreをHTTPSで保護しました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。