Ansible UI:AWX と Semaphore UI の比較

Denis GukovSemaphore UI 創業者兼 CTO
読了時間:約18分

AWX と Semaphore UI は、チームで自動化を実行するための Web インターフェースと API を提供します。本記事では AWX 24.6.1 と Semaphore UI 2.20.0 を対象に、対応ツールやデプロイ方法からワークフロー、アクセス制御、継続的な保守まで比較します。

この記事について AI に相談

概要

Ansible Playbook は、エンジニアがノートパソコンから実行するコマンドとして使い始めることもあります。デプロイ、パッチ適用、証明書の更新がチーム共通の業務になると、ジョブの起動、入力値の指定、認証情報の管理、結果の確認を行う共通の場所が必要になります。AWX と Semaphore UI は、保存済みのジョブ設定、スケジュール、権限、実行履歴を通じて、この共有基盤を提供します。

AWX は Ansible を中心に自動化を構成します。Git に保存された Playbook をインベントリや認証情報に関連付け、ジョブテンプレートとして保存し、複数のジョブをワークフローにまとめます。各リソースを利用できるユーザーは、組織、チーム、権限で制御します。AWX はオープンソースプロジェクトです。一方、Red Hat Ansible Automation Platform(AAP)は、独自のサポートとライフサイクルを持つ別の商用製品です。

Semaphore UI も再利用可能なタスクを中心とし、Ansible Playbook に加えて Terraform/OpenTofu、Terragrunt、Bash、PowerShell、Python 専用のテンプレートを提供します。プロジェクトには、テンプレート、リポジトリ、インベントリ、認証情報、変数をまとめて管理できます。ワークフローで Infrastructure as Code(IaC)によるプロビジョニング、ホスト設定、その後の保守をつなぎ、各ツールの操作を一つの画面で扱えます。

一つのプロジェクトに並ぶ Semaphore UI の Ansible、OpenTofu、Terragrunt、Bash、PowerShell タスクテンプレート。
Semaphore UI. 異なる自動化ツールのテンプレートを同じプロジェクトの一覧で管理でき、表示列も設定できます。
組織内の Ansible ジョブテンプレートと再利用可能なワークフローテンプレートを表示する AWX のテンプレート一覧。
AWX. Ansible ジョブとワークフローのテンプレートを、組織情報と起動操作を備えた共通の一覧で管理します。

主要項目の比較

両製品とも、保存済みジョブ、認証情報、スケジュールで日常的な Ansible 運用に対応します。より大きな違いは、ツールの対応範囲、デプロイ方法、リソース管理にあります。以下に主な特徴をまとめます。

自動化ツール、インストール、実行、ワークフロー、インベントリ、アクセス制御、認証情報、変数、ライセンス
比較項目 Semaphore UI AWX
自動化ツール Ansible, Terraform/OpenTofu, Terragrunt, Bash, PowerShell, Python Ansible他のツールは Playbook 経由
インストール バイナリ、パッケージ、Docker、Kubernetes Kubernetes(Operator)、Docker(開発・テスト)
サーバーの対応 OS Linux, macOS, Windows, FreeBSD Linux コンテナ(Kubernetes / Docker)
タスク実行 サーバー上またはリモートのタスク実行マシン 実行サーバーまたは Kubernetes のジョブ Pod
ワークフロー 対応、複数の自動化ツールをつなぐビジュアルワークフロー 対応、サブワークフローを再利用できる Ansible ビジュアルワークフロー
スケジュール cron 式、単発実行 単発および繰り返しスケジュール
インベントリ管理 静的・Git インベントリ、動的プラグイン、NetBox などの外部ソース 静的・動的インベントリ、管理対象の更新、構成インベントリ
アクセス制御 RBAC、プロジェクトロール、カスタムロール、テンプレート権限LDAP、OIDC、ローカル TOTP RBAC、組織・チームロール、リソース別権限LDAP、OIDC、SAML、ID プロバイダー経由の MFA
認証情報 Key Store、SSH 鍵、パスワード、外部シークレット保管サービス連携 認証情報オブジェクト、SSH 鍵、パスワード、外部シークレット保管サービス連携
変数 再利用可能な変数グループ、追加変数、環境変数、サーベイ インベントリ・ホスト・グループ変数、追加変数、サーベイ
ライセンス MIT (Community)有料エディションには別途商用条件が適用 Apache 2.0

日常的な Ansible ジョブについては、どちらも起動、スケジュール、実行履歴を提供します。主な違いは、インベントリと権限の管理、直接実行できるツール、デプロイ方法です。

ここで紹介する Semaphore UI の機能は Community、Pro、Enterprise にまたがります。対応エディションの注記は、利用に必要な最小エディションを示します。商用の選択肢は「ライセンスとサポート」で説明します。

機能比較

デプロイでは、インフラのプロビジョニング、ホスト設定、本番環境変更前の承認待ちなどが必要になります。これらの処理をどこで実行し、結果をどう受け渡し、誰が制御するかに、製品間の重要な違いが表れます。

インストールとセットアップ

AWX の推奨インストール方法は Kubernetes を使用します。Semaphore UI はスタンドアロン構成にも対応するため、サービスをホストするために必要なインフラが最初の比較ポイントになります。

対応一部対応非対応
インストールとセットアップ: AWXとSemaphore UI
比較項目 Semaphore UI AWX
スタンドアロンのバイナリ 対応 非対応
ネイティブ Linux パッケージ 対応DEB / RPM 非対応
Docker デプロイ 対応 一部対応開発・テストのみ
Kubernetes デプロイ 対応Helm チャート 対応AWX Operator
ネイティブ Windows サーバー 対応Ansible には WSL、コンテナ、または Linux runner が必要 非対応Linux コンテナ
高可用性 対応Enterprise共有データベース、Redis、ロードバランサー 対応レプリカに対応、DB フェイルオーバーは別途設定

AWX の推奨デプロイは、Kubernetes Operator、PostgreSQL、コンテナでのジョブ実行を組み合わせます。Docker 構成は開発・テスト向けです。すでに Kubernetes を運用するチームにとって、Operator は慣れた運用モデルです。AWX のためだけにクラスターを導入すると、保守対象のインフラが増えます。

Semaphore UI は Helm による Kubernetes デプロイに加え、バイナリ、ネイティブパッケージ、Docker でのインストールと、SQLite、MySQL、PostgreSQL に対応します。スタンドアロン構成ならクラスターなしで既存のサーバーを利用でき、小さな構成から始めて運用モデルを選べます。

サーバーの OS とジョブ実行環境は別です。Semaphore UI にはネイティブ Windows サーバーバイナリがありますが、Ansible には Linux、macOS、適切なコンテナ、または WSL が必要です。Linux runner は、別の環境にホストされた Web サービスからジョブを実行できます。両製品とも Ansible を通じて Windows の対象ホストを管理できます。

高可用性については、AWX のスケーリング機能と Semaphore UI Enterprise の HA 構成のいずれも、データベースのフェイルオーバーと復旧の計画が必要です。閉域環境では、パッケージ、実行イメージ、更新、有料ライセンスのアクティベーションを届ける手段も必要です。

自動化ツール

一つのデプロイで、Terraform/OpenTofu によるプロビジョニング、Ansible による設定、Python による後処理を行う場合があります。AWX は Playbook から他のツールを呼び出し、Semaphore UI は直接実行できるタスクテンプレートを提供します。

対応一部対応非対応
自動化ツール: AWXとSemaphore UI
比較項目 Semaphore UI AWX
Ansible Playbook 対応 対応
Terraform/OpenTofu 対応ネイティブのタスクテンプレート 一部対応Ansible Playbook 経由
Terragrunt 対応ネイティブのタスクテンプレート 一部対応Ansible Playbook 経由
Bash 対応ネイティブのタスクテンプレート 一部対応Ansible Playbook 経由
PowerShell 対応ネイティブのタスクテンプレート 一部対応Ansible Playbook 経由
Python 対応ネイティブのタスクテンプレート 一部対応Ansible Playbook 経由

AWX は実行の中心に Ansible を置きます。実行環境に依存ツールが入っていれば、Playbook からモジュールやコマンドで Terraform/OpenTofu、Terragrunt、Bash、PowerShell、Python を呼び出せます。すでに Ansible でプロビジョニング手順を記述しているチームに適しています。

Semaphore UI は各ツール専用のテンプレートを提供します。別のツールを呼び出すためだけに Playbook を追加保守せず、既存の自動化を直接起動してワークフローで組み合わせられます。OpenTofu タスクでインフラを構築し、Ansible タスクでホストを設定し、Python タスクで関連処理を完了する、といった操作を一つの画面で管理できます。

Semaphore UI Pro は Terraform/OpenTofu state 用の組み込み HTTP バックエンドに加え、ワークスペースと実行オプションを提供します。別のバックエンドを運用せず、共有 state を Semaphore UI に保管できます。AWX では、呼び出された Terraform プロセスがチームの設定したバックエンドを使います。AWX の Terraform State インベントリソースは、ホストの検出のために state を読み取りますが、保管はしません。

Semaphore UI 2.20 の Terraform 実行には、重要な制限が二つあります。通常の実行では apply の前に plan を表示しますが、その plan を自動保存して同じファイルを apply するわけではありません。承認が提案された変更そのものを対象とする必要がある場合、plan を保存し、apply に渡すよう構成してください。また、標準の Terraform コマンドは、バックエンドがロックに対応していても、上書きしない限り state ロックを無効にします。本番実行の設定では、両方を確認してください。

テンプレートとスケジュール

AWX では、保存した Ansible の実行設定を Job Template と呼びます。Semaphore UI では Task Template と呼びます。起動するたびに、AWX ではジョブ、Semaphore UI ではタスクが個別に作成され、それぞれにステータス、ログ、結果が記録されます。テンプレートは再利用する設定を保持し、サーベイとスケジュールが実行時の入力値とタイミングを制御します。

対応一部対応非対応
テンプレートとスケジュール: AWXとSemaphore UI
比較項目 Semaphore UI AWX
タスク設定の保存 対応 対応
サーベイ(実行時の入力) 対応 対応
再利用可能な変数セット 対応複数のテンプレートで共有する Variable Groups 一部対応インベントリ変数または Git 内のファイル
起動時のリポジトリブランチ指定 対応 対応
スケジュール実行 対応cron 式と単発実行 対応単発および繰り返しスケジュール

AWX の Job Template では、プロジェクト、Playbook、インベントリ、認証情報を選択し、実行時の依存関係には実行環境を指定します。Semaphore UI の Ansible Task Template では、リポジトリ、Playbook、インベントリを選択し、同じフォームで再利用可能な Variable Groups と Ansible のオプションも設定します。エンジニアが一度設定を準備すれば、同僚は毎回設定し直すことなく、その操作を起動できます。

リポジトリ、Playbook、インベントリ、Variable Groups、起動時の入力設定を表示する Semaphore UI の Ansible Task Template エディター。
Semaphore UI. 共通の変数と起動オプションを設定した Ansible Task Template。
プロジェクト、インベントリ、Playbook、認証情報、実行環境を表示する AWX の Job Template エディター。
AWX. リソースの選択と起動時の入力設定を備えた Ansible Job Template。

サーベイを使うと、Playbook を編集せずに利用者が起動時の入力値を指定できます。AWX は文字列長の範囲などの検証に対応します。Semaphore UI の Survey Variables は型付き入力、複数行テキスト、シークレット、単一・複数選択を備えます。再利用可能な Variable Groups は、共通設定を起動時の入力値から分けて管理します。AWX では、複数のテンプレートから選択する独立した Variable Groups オブジェクトの代わりに、インベントリ、ホスト、グループの変数や Git 内の変数ファイルで設定を共有できます。

どちらも許可する設定であれば、リポジトリの別ブランチを実行できます。AWX はインベントリ、認証情報、その他のジョブ設定を起動時に入力させることができます。Semaphore UI は、設定された Ansible インベントリとコマンドラインの上書きに対応します。これらはエンジニアに柔軟性を与えつつ、承認済みの手順では入力フォームを限定することも可能にします。

スケジュールはこうした起動を自動化します。AWX は開始日時と繰り返し設定を使います。Semaphore UI は cron 式と単発実行に対応します。たとえば 0 2 * * * は、スケジューラーに設定されたタイムゾーンで毎日 02:00 に実行します。タイムゾーンの既定値は UTC です。どちらの方法でも、バックアップ、ホスト確認、営業時間外の非本番マシン停止などを扱えます。

毎日の cron 式、タスクテンプレート、次回実行時刻を表示する Semaphore UI のスケジュールダイアログ。
Semaphore UI. タスクの入力値と次回実行のプレビューを備えた cron スケジュール。
毎日の繰り返し、タイムゾーン、終了条件、例外を設定する AWX スケジュールフォーム。
AWX. タイムゾーン、繰り返し、終了条件、例外を備えたスケジュール。

インベントリ

両製品とも静的ファイルと動的検出を利用できます。主な違いは、検出したホストをプラットフォーム管理のレコードにするか、ジョブ実行時に Ansible が解決するかです。

対応一部対応非対応
インベントリ: AWXとSemaphore UI
比較項目 Semaphore UI AWX
静的インベントリ 対応INI/YAML エディターとファイル 対応ホスト・グループのレコードとインポートファイル
Git インベントリ 対応同じリポジトリまたは専用インベントリリポジトリ 対応SCM プロジェクトソース
動的インベントリ 対応Ansible プラグインと実行可能スクリプト 対応プラグイン、スクリプト、管理対象ソース
インベントリの更新 一部対応実行時の検出 対応定期更新と起動時更新
計算によるインベントリグループ 対応Ansible constructed プラグイン 対応管理対象の構成インベントリ
管理対象のファクトキャッシュ 非対応Ansible キャッシュを別途設定 対応AWX がホストファクトを保存
ホストとグループの編集 一部対応INI/YAML 定義を編集 対応個別のホスト・グループ管理

AWX はホスト・グループのレコードを保持し、静的ファイル、Ansible インベントリプラグイン、実行可能スクリプトを使うインベントリ更新ジョブで更新します。Semaphore UI は INI/YAML インベントリの編集と、別リポジトリを含む Git からの読み込みに対応します。プラグインやスクリプトは実行時にホストを検出します。主な違いは、プラットフォームがインベントリのライフサイクルを管理するか、チームの Ansible 設定を再利用するかです。

静的 YAML でステージングの Web ホスト二台を定義した Semaphore UI の Ansible インベントリエディター。
Semaphore UI. ホストグループと接続変数を持つ静的 YAML インベントリ。
個別のステージングホスト、web グループ、ホスト単位の有効化スイッチを表示する AWX インベントリ。
AWX. グループ所属とホスト別の操作を備えた個別ホストレコード。

たとえば netbox.netbox.nb_inventory プラグインは、NetBox データからデバイスと仮想マシンを検出し、対象を絞り込んでグループを構築します。正本となるデータは NetBox に残ります。AWX は更新制御と保存済みレコードを追加し、Semaphore UI は設定を Ansible に渡します。両者とも独立したネイティブ NetBox コネクターではなく Ansible プラグインを使います。他のソースには AWS、Azure、Google Cloud があり、Semaphore UI のドキュメントには Consul 用の Git に配置した Python スクリプトも紹介されています。

AWX の構成インベントリは、保存済みの入力インベントリを結合し、得られたホストを管理します。Semaphore UI は Ansible の constructed プラグインを使って、先行ソースからグループと変数を構築できます。Ansible のキャッシュプラグインでファクトを保持できますが、Semaphore UI 自体は AWX のような管理対象ファクトキャッシュを提供しません。キャッシュの保存先、有効期限、runner 間の共有は Ansible 側の設定です。

Semaphore UI は、バージョン 2.21.0 で ARA スタイルの Ansible レポート機能を追加する予定です。個々のホストとその自動化履歴を確認するビューがインベントリ機能を補完し、各サーバーでどのタスクがいつ実行され、どこで失敗したかを把握できるようになります。

操作担当者がプラットフォーム内でホストレコードを参照、更新、管理する必要があるなら、AWX のインベントリモデルが適しています。Git でインベントリを定義するか、Ansible が実行時に NetBox やクラウド API からホストを検出する構成には Semaphore UI が適しています。

シークレット

保存済みジョブには、操作のたびにパスワードやクラウドトークンを貼り付けずに認証情報を渡せる仕組みが必要です。保管と検索の方法により、認証情報をジョブに届ける仕組みが決まります。

対応一部対応非対応
シークレット: AWXとSemaphore UI
比較項目 Semaphore UI AWX
認証情報の保管 対応 対応
HashiCorp Vault 対応Pro 対応
OpenBao 対応Pro 非対応組み込み連携なし、Vault 互換性のテストが必要
AWS Secrets Manager 対応Enterprise 対応
Azure Key Vault 対応Enterprise 対応
Devolutions Server 対応Enterprise 非対応組み込み連携なし、独自接続は可能

AWX の認証情報オブジェクトと Semaphore UI の Key Store は、起動のたびに担当者が貼り付けなくても保存済みジョブに認証情報を供給します。どちらも HashiCorp Vault、AWS Secrets Manager、Azure Key Vault と連携し、既存サービスを継続利用できます。

サーバー URL、マウント、名前空間、トークン取得元の選択肢を表示する Semaphore UI の Vault 保管フォーム。
Semaphore UI. Vault の接続設定、マウント、トークン取得元。
接続と認証の項目を表示する AWX の HashiCorp Vault Secret Lookup 認証情報フォーム。
AWX. Vault 検索の接続・認証項目。その他の設定は表示領域の下に続きます。

他の連携では製品間に違いがあります。AWX は CyberArk Central Credential Provider、CyberArk Conjur、カスタム認証情報タイプを提供します。Semaphore UI は OpenBao と Devolutions Server の専用連携を提供します。AWX の Vault 検索は互換サービスで動作する可能性がありますが、必要な操作について OpenBao との互換性を検証する必要があります。

チームがすでに使っているシークレット保管サービスの連携を、認証方法やジョブに必要なシークレットの種類も含めて比較してください。組み込み連携のないサービスでは、取得用の独自コードが必要になる場合があります。

実行

ジョブには、対象システムへ接続できる実行リソースが必要です。リモートワーカーとコンテナイメージは、ネットワーク上の配置と実行時依存関係をそれぞれ解決します。

対応一部対応非対応
実行: AWXとSemaphore UI
比較項目 Semaphore UI AWX
リモート実行 対応 対応
専用の実行容量 対応Proプロジェクト runner 対応リソースに割り当てるインスタンスグループ
実行先のルーティング 対応Proテンプレートまたはインベントリの runner タグ 対応リソースに割り当てるインスタンスグループ
Ansible ロールとコレクション 対応requirements.yml からインストール 対応プロジェクト同期時にインストール
コンテナでのタスク実行 対応ProDocker executor 対応Ansible 実行環境イメージ
Kubernetes ジョブ Pod 対応Enterprise 対応
同時実行制御 対応テンプレート、プロジェクト、インスタンスの上限 対応同時実行ジョブとインスタンスグループの容量

AWX は処理を実行ノードに送り、ノードをインスタンスグループにまとめて組織、インベントリ、テンプレートに割り当てます。Semaphore UI はサーバー上でジョブを実行するか、runner に送ります。どちらのモデルでも、Web インターフェースを集中管理しつつ、実行マシンを対象システムの近くに配置できます。

プライベートネットワーク内の Semaphore UI runner は、Web サーバーから直接接続できなくても、ホストへのパッチ適用や証明書更新を実行できます。プロジェクト runner でプロジェクトに容量を割り当て、テンプレートやインベントリのタグで一致する runner にジョブを送ります。分散拠点や顧客環境に適した構成です。ルーティングタグは実行マシンを選びますが、ネットワークやクラウドアカウントの分離を強制するものではありません。

ジョブのランタイムが、そのマシンで実行する内容を決めます。AWX は Ansible と依存関係を含む実行環境イメージを使い、コンテナグループでジョブごとに Kubernetes Pod を作成できます。Semaphore UI は Pro でタスク単位の Docker 実行、Enterprise で Kubernetes 実行を提供します。これらは Web サービス自体をコンテナに配置することとは別です。両製品ともリポジトリの requirements から Ansible ロールやコレクションをインストールでき、他のライブラリやツールは実行マシンまたはイメージに用意します。

同時実行制御は、並行して実行する処理を制限します。AWX は同時実行ジョブ設定と実行容量、インスタンスグループの上限を組み合わせます。Semaphore UI はインスタンス、プロジェクト、テンプレートの上限を適用します。

AWX は大規模なインベントリを並列ジョブに自動分割することもできます。Semaphore UI では、Ansible のホスト制限を指定した個別実行で処理を分け、runner タグで実行マシンを選べます。この場合、対象の部分集合と起動はチームで管理します。ローリング更新には、Ansible の serial 設定で順次処理するバッチを制御できます。これらは対象を絞った実行や段階的リリースに対応し、AWX の slicing は全体を並列処理するための自動分割を提供します。

ワークフロー

プロビジョニングには、計画、承認、デプロイ、ホスト設定が必要になり、成功・失敗後の経路も異なります。各ステップをどう接続できるかは、ワークフローの構成機能によって決まります。

対応一部対応非対応
ワークフロー: AWXとSemaphore UI
比較項目 Semaphore UI AWX
ビジュアルワークフローエディター 対応 対応
複数の開始ノード 非対応 対応
分岐の合流 対応 対応
ワークフローをステップとして使用 非対応 対応
成功・失敗による分岐 対応 対応
承認ステップ 対応 対応
独立した承認者ロール 非対応2.21 で提供予定と発表 対応
ワークフローでの値の受け渡し 対応 対応

AWX のワークフローは Ansible ジョブテンプレートを接続し、他のツールは Playbook から呼び出します。Semaphore UI は Ansible、Terraform/OpenTofu、Terragrunt、Bash、PowerShell、Python のテンプレートを直接接続します。どちらも成功・失敗による分岐と承認に対応し、本番変更の前にプロビジョニングを一時停止できます。

どちらもループのないグラフを使い、合流時に先行ノードのすべて、またはいずれかを条件にできます。AWX は複数の開始ノードを許可します。Semaphore UI は一つの開始ノードから始まり、タスク、承認、時間指定の待機、注釈ノードを提供します。

AWX はワークフロー全体を別のワークフロー内で再利用でき、共通の複数ステップ手順を一か所で管理できます。再帰実行を防ぎ、リポジトリとインベントリの更新ステップも提供します。Semaphore UI は複数のワークフローで個別のタスクテンプレートを再利用できますが、ワークフロー自体をステップとして組み込めません。単一ジョブではなく一連の手順を複数のデプロイで共有するときに、この違いが重要になります。

plan、承認、デプロイ、成功・失敗別の分岐を備えた Semaphore UI ワークフローエディター。
Semaphore UI. 承認と、成功・失敗それぞれの経路を持つデプロイワークフロー。
plan、承認、デプロイ、入れ子のリリース検証、復旧分岐を表示する AWX Workflow Visualizer の全体画面。
AWX. デプロイ前の承認、入れ子の検証ワークフロー、失敗時の復旧分岐。

AWX は独立して割り当てられる承認者ロールを備え、管理者も承認できます。Semaphore UI 2.20 では、承認権限はプロジェクトのタスク実行権限に従います。承認と実行を独立して割り当てる必要がある場合、これは実質的な違いです。Semaphore UI の独立した承認者ロールは 2.21 向けに発表されており、本比較には含まれません。

どちらも UI と認証付き API から承認でき、AWX は Ansible モジュールも提供します。Slack で対話的に承認するには、通知だけでなく API を呼び出す連携が必要です。

どちらも、新しく構築したホストのアドレスなどを後続ジョブに渡せます。AWX は Playbook の set_stats 値を後続の追加変数として公開し、実行ノードでも利用できます。Playbook で他のツールの結果を取得して同じ方法で渡すこともできます。Semaphore UI は Ansible set_stats、Terraform/OpenTofu/Terragrunt 出力、Bash・PowerShell・Python の JSON を収集し、同名の対応付けまたは明示的なマッピングで、後続タスクのサーベイ変数に割り当てます。

Semaphore UI 2.20 の出力収集は、ローカル executor を使うサーバーとリモート runner で動作します。Docker と Kubernetes executor はまだ 出力 を生成しません。値はタスク成功後に収集されるため、失敗時の分岐で失敗したタスクの 出力 を利用することはできません。値はタスクの閲覧者に見えるため、シークレットを含めないでください。

どちらの製品も、値の受け渡しでファイルが転送されるわけではありません。保存済み Terraform plan などの成果物を別ステップに渡すには、両方がアクセスできるストレージを用意します。同じ runner を再利用しても、タスク間で作業ディレクトリが保持される保証はありません。

アクセス制御

サポート担当者に、汎用的なサーバーログインを付与せず、承認済みサービスの再起動だけを許可したい場合があります。権限委譲では、操作と対象の両方を制限する必要があります。

対応一部対応非対応
アクセス制御: AWXとSemaphore UI
比較項目 Semaphore UI AWX
ロールベースのアクセス制御 対応プロジェクトロール、Enterprise のカスタムロール 対応組織・チーム・リソースのロール
インベントリと認証情報の独立した権限 非対応リソースへのアクセスはプロジェクトロールに従う 対応
テンプレート単位の実行権限 対応Enterprise 対応
LDAP と OIDC 対応Pro 対応
SAML シングルサインオン 非対応OIDC に対応 対応
二要素認証 対応Proローカル TOTP 対応外部 ID プロバイダー経由

AWX はインベントリ、認証情報、ジョブテンプレートに独立して権限を付与します。Semaphore UI はプロジェクトを中心にアクセスを整理し、Enterprise のカスタムロールとテンプレート単位の実行権限で細かく委譲できます。事前設定済みのテンプレートなら、選択したインベントリ、認証情報、実行設定を使う承認済み操作を公開できます。

たとえば Semaphore UI Enterprise では、指定した本番サーバーのサービス再起動テンプレートだけをサポート担当者に利用させられます。基本ロールの Guest と、プロジェクト全体の権限を持たないカスタムロールを組み合わせて、そのテンプレートの実行を許可できます。インベントリ、ホスト制限、変数、その他の起動時上書きを制限し、追加ロールで権限が広がらないことを確認します。テンプレート、権限、自動化処理が許可された操作を定義し、サーベイは入力値だけを収集します。

この方式は、プロジェクト内でインベントリや認証情報の独立した権限を作らずに、特定操作を委譲します。担当者が別々のアクセス規則に基づいてリソースを組み合わせる必要がある場合、AWX の方が近いモデルです。Semaphore UI のテンプレート権限は、定義済みの承認済み手順に適しています。

どちらも LDAP と OIDC によるログインに対応します。AWX は SAML にも対応し、MFA は外部 ID プロバイダーに依存します。Semaphore UI はローカル TOTP 二要素認証を提供します。OIDC 対応の ID プロバイダーで Semaphore UI の集中ログインを実現できますが、SAML のみが要件なら別の連携方法が必要です。

ログと監査

ジョブ出力は実行失敗の原因を説明します。監査履歴は、誰が操作を起動し、設定を変更したかを記録し、出力ログとは可視性や保持の要件が異なります。

対応一部対応非対応
ログと監査: AWXとSemaphore UI
比較項目 Semaphore UI AWX
タスク履歴とログ 対応 対応
タスク履歴の保持 対応テンプレートごとに直近のタスクを保持 対応経過期間に応じた定期クリーンアップ
プロジェクト横断の監査履歴 対応管理者向け監査ログ、記録の有効化が必要 対応アクティビティーストリーム、ロール別の可視性
SIEM への転送 対応ProTLS Syslog と Splunk HEC 対応Splunk などへの外部ログ出力

両製品とも、トラブルシューティング用にタスク履歴と出力を保持します。監査の可視性は異なります。AWX のアクティビティーストリームは、リソースの権限と管理者・監査者ロールに従います。Semaphore UI のプロジェクト横断監査ビューは管理者向けで、監査記録を有効にするとイベントがデータベースに保存されます。

調査を一元化する場合、AWX の外部ログ機能で、アクティビティー、ジョブ、サーバーの記録を Splunk などに転送できます。Semaphore UI Pro は監査フィルター、CSV・JSONL エクスポート、TLS Syslog または Splunk HEC での転送を追加します。どちらもログ基盤やセキュリティー情報イベント管理(SIEM)システムにイベントを供給できます。

ローカルの保持方法は異なります。AWX は、実行履歴とアクティビティーストリームを経過期間に応じて定期削除できます。Semaphore UI はテンプレートごとに設定件数の直近タスクを保持します。中央ログシステムなら、これらのローカル上限を超えて記録を保持できます。

連携

リポジトリ変更やサービスポータルの依頼を契機に自動化を実行できます。API、Webhook、通知によって、イベントとジョブ、その結果をつなぎます。

対応一部対応非対応
連携: AWXとSemaphore UI
比較項目 Semaphore UI AWX
REST API 対応 対応
ジョブの Webhook 対応汎用エンドポイント、照合条件、値の抽出 対応GitHub と GitLab の Webhook
ジョブ通知 対応 対応

AWX は、リポジトリを起点とする自動化向けに、GitHub と GitLab のジョブ Webhook を標準で提供します。Semaphore UI は、リクエストの照合とタスク入力値の抽出に対応する汎用 Webhook エンドポイントを提供します。これらのエンドポイントはさまざまなシステムからイベントを受信でき、両製品の REST API はその他の呼び出し元にも対応します。

外部への通知では、AWX はメール、Slack、Rocket.Chat、Mattermost、PagerDuty、AWS SNS、Grafana、IRC、Twilio、Webhook に対応します。Semaphore UI はメール(SMTP)、Telegram、Slack、Microsoft Teams、Rocket.Chat、DingTalk、Gotify に対応します。これらはジョブのイベントを人やサービスに知らせるもので、自動化を起動する受信用ジョブ Webhook とは役割が異なります。

サービスポータルや ITSM システムは、どちらの REST API でも準備済みのジョブを起動し、結果を取得できます。たとえば、社内ポータルから保存済みテンプレートに証明書更新の依頼を送り、依頼者に完了を通知できます。これはチームが設定する API ベースの連携であり、専用のネイティブコネクターではありません。

AI を活用した自動化

両プラットフォームは、公開ドキュメント、オープンソースコード、仕様が文書化された API など、Claude Code や Codex といったコーディングアシスタントにとって有用な資料を提供します。アシスタントは設定例を参照し、設定項目の実装を調べ、API 定義を使って連携コードの下書きを作成できます。関連する設定とジョブ出力があれば、障害調査も支援できます。そのため、プラットフォームに専用の AI 機能が組み込まれていなくても、AI を活用したセットアップやトラブルシューティングが可能です。

AWX と Semaphore UI のどちらにも、コミュニティー製の MCP コネクターがあります。コネクターによって対応範囲は異なりますが、アシスタントからテンプレートの検索、ジョブの起動、結果の取得などの操作を行えます。ジョブの定義と実行をプラットフォーム側に維持しながら、準備済みの自動化をアシスタント経由で利用できます。

Semaphore UI は、バージョン 2.21.0 の Pro で公式 MCP サポートを提供する予定であると発表しています。

ライセンスとサポート

AWX と Semaphore UI はどちらも無料のオープンソースソフトウェアを提供します。主な違いは、自動化の業務上の重要性が高まったとき、商用機能、ベンダーサポート、契約上の約束をどう得るかにあります。

オープンソースと商用の選択肢

AWX は Apache 2.0 ライセンスで、コミュニティーがサポートします。Red Hat Ansible Automation Platform(AAP)の automation controller コンポーネントのアップストリームプロジェクトでもあります。Red Hat は AWX 自体のサポートサブスクリプションを販売していません。商用サポートの対象は AAP という別のエンタープライズプラットフォームで、automation controller に追加コンポーネント、認定コンテンツ、定義された製品ライフサイクルを組み合わせています。

Semaphore UI はオープンコアモデルです。Community は無料の MIT ライセンスで、Pro と Enterprise は同じ製品ファミリーの中で商用機能とベンダーサポートを追加します。Pro は日常業務に自動化を取り入れる小規模なエンジニアリングチーム向けです。Enterprise はアクセス、実行、可用性、サポートに関する、より高度な要件に対応します。

そのため、両者の商用製品は異なる購買ニーズに応えます。AAP は、より広範なエンタープライズプラットフォームへの投資です。Semaphore UI の商用プランはエンジニアリングチームと中規模組織を対象とし、複雑または業務上重要な環境向けに Enterprise を用意します。必要な自動化サービスに投資を絞りながら、高度な制御とベンダーサポートを得られます。

サポートと契約上の約束

AWX ユーザーはコミュニティーチャネルで質問、バグ報告、修正への貢献ができます。コミュニティーの支援は、一定時間内の応答やインシデント支援をベンダーに義務付けるものではありません。AAP サブスクリプションは AAP に対する Red Hat サポートを提供しますが、既存の AWX インストールにサポートを追加するものではありません。

Semaphore UI Community も、サポート SLA のないベストエフォートの支援です。Pro には営業時間内のベンダーサポートが含まれ、Enterprise は個別の SLA オプションと、導入、設定、アップグレード、移行の支援を提供します。商用顧客はベンダーと直接契約し、サポート義務は適用されるプランと契約によって定義されます。

リリースと保守の計画

AWX は現在、大規模なリファクタリング中のためリリースを停止していると説明しています。Semaphore UI はリリースを継続し、サポート対象バージョンを示すセキュリティーポリシーを維持しています。これらの違いはアップグレードや継続保守の計画に影響します。運用予定バージョンのリリース履歴、セキュリティーポリシー、アップグレード手順を、契約上のサポート条件と併せて確認してください。

選び方

どちらもチームで自動化を共有し、ジョブを予約し、結果を確認できます。ホスト情報の管理、操作の委譲、サービスのホスト方法、サポートの得方に基づいて選びます。

AWX を選ぶ場合

Ansible が自動化の中心で、そのリソース管理モデルが日常業務に合っている場合、AWX が適しています。

  • プラットフォームでのインベントリ管理が中心的な要件である。 担当者が日常的にプラットフォーム上でホスト・グループのレコードを管理し、インベントリを更新し、ホストファクトを保持します。
  • インベントリと認証情報に独立したアクセス規則が必要である。 ジョブテンプレートとは独立して個々のインベントリと認証情報に権限を付与し、許可されたリソースだけを担当者が組み合わせる必要があります。
  • Kubernetes が既存のインフラに合っている。 すでにクラスターを運用しているため、AWX の推奨デプロイモデルが既存システムと運用スキルに合います。
  • Ansible がすでに手順をオーケストレーションしている。 Playbook が他ツールの呼び出しを含む必要な操作を網羅し、Ansible 実行環境が依存関係を提供しています。
  • コミュニティーサポートで要件を満たせる。 ベンダーの応答 SLA がなくても、インシデント調査、セキュリティー情報の評価、インストール環境の保守を行う専門性と余力があります。

Semaphore UI を選ぶ場合

既存のツールとインフラを使い、自動化を実行・共有するシンプルなサービスが必要なら、Semaphore UI が適しています。

  • インベントリがすでに Git や外部システムにある。 ジョブ実行時に NetBox、クラウド API、その他のソースからホストを検出する Ansible インベントリ定義やプラグインを再利用したい場合です。
  • 準備済みの操作を同僚に使わせたい。 エンジニアがデプロイ、サービス再起動、証明書更新などのタスクを定義します。他のメンバーは必要な入力値を指定して実行し、インベントリと認証情報は準備済み設定の一部として保持します。
  • Kubernetes を使わずにデプロイしたい。 バイナリ、ネイティブパッケージ、Docker インストールで既存サーバーを利用でき、自動化サービスだけのためにクラスターを導入せずに済みます。
  • 自動化が複数のツールにまたがる。 専用テンプレートが Ansible、Terraform/OpenTofu、Terragrunt、Bash、PowerShell、Python を直接実行し、ワークフローがそれらの操作を接続します。
  • 商用サポートへ直接移行できる経路がほしい。 商用ライセンスで同じ製品ファミリーのベンダーサポートと高度な機能を追加でき、Semaphore UI を使い続けながらサポートの約束を得られます。

よくある質問

Semaphore UI は AWX の代わりになりますか?

インベントリ、権限、ワークフローのモデルが要件を満たせば可能です。既存の Playbook は多くの場合再利用できますが、ジョブ設定とアクセス制御は対応付けとテストが必要です。特に入れ子のワークフロー、独立したインベントリ・認証情報の権限、管理対象ファクトキャッシュなど、AWX 固有機能への依存を確認してください。

既存の Ansible Playbook を再利用できますか?

同じリポジトリと Playbook から始められます。Semaphore UI で必要なインベントリ、認証情報、変数、コレクション、実行時依存関係を設定し、代表的な実行をテストしてください。コードの再利用は、AWX の設定すべてを自動インポートすることを意味しません。

AWX からの移行で何を確認すべきですか?

代表的なワークフローを一つ選び、可能な限り Playbook を再利用して、インベントリ、認証情報、変数、サーベイ、スケジュール、実行時依存関係を対応付けます。権限、承認、入れ子のワークフロー、値やファイルの受け渡しは個別に検証します。インポートで設定作業は減らせますが、同じ動作を証明するものではありません。本番スケジュールを有効にする前にテストしてください。

Semaphore UI のどの機能に有料エディションが必要ですか?

Community は基本のタスク画面とワークフローを含みます。プロジェクト runner、Docker 実行、外部シークレット保管サービス連携などは Pro 以上で利用できます。カスタムロール、テンプレート権限、Kubernetes タスク実行、高可用性には Enterprise が必要です。プランを見積もる際は、該当機能と必要容量を確認してください。

移行後も SAML シングルサインオンを使えますか?

AWX は SAML に直接対応します。Semaphore UI は LDAP と OIDC に対応しますが、ネイティブ SAML 連携はありません。ID プロバイダーが OIDC にも対応していればログイン要件を満たせる可能性があります。認証プロトコルの変更だけで AWX の権限は再現されないため、ユーザーとグループの対応付けを別途確認してください。

Semaphore UI に Kubernetes は必要ですか?

いいえ。バイナリ、パッケージ、Docker でインストールできます。Kubernetes は任意のデプロイ方法です。自動化ツールと適切なデータベースは引き続き環境に必要です。

AWX は Terraform の実行や HashiCorp Vault の利用に対応しますか?

はい。Playbook から Terraform コマンドやコレクションのモジュールを実行でき、AWX は HashiCorp Vault の認証情報検索にも対応します。Semaphore UI は専用の Terraform/OpenTofu テンプレートと、任意の Pro HTTP state バックエンドを使う別の設定モデルを提供します。

両プラットフォームともリモート実行に対応しますか?

どちらもリモートサーバーでタスクを実行できます。AWX はチームや処理内容に応じてグループ化した実行ノードを使い、Semaphore UI は runner エージェントを使います。設定とアクセスのモデルは異なります。

この記事は役に立ちましたか?

出典

  1. ARA Records Ansible, “ARA Records Ansible”. URL: https://ara.recordsansible.org/ (参照日: ).
  2. Semaphore UI, “Semaphore runner output capture and executor limits”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/runners/job_pool.go#L167-L192 (参照日: ).
  3. Semaphore UI, “Semaphore task dispatch, runner routing, concurrency and remote workflow outputs”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/TaskPool.go (参照日: ).
  4. Semaphore UI, “Semaphore workflow input mapping model”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Workflow.go#L27-L44 (参照日: ).
  5. Semaphore UI, “Semaphore task template options and survey field types”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Template.go (参照日: ).
  6. Semaphore UI, “Semaphore NetBox dynamic inventory example”. URL: https://semaphoreui.com/docs/user-guide/inventory/netbox-dynamic-inventory (参照日: ).
  7. Semaphore UI, “Semaphore Consul inventory script”. URL: https://semaphoreui.com/docs/user-guide/inventory/consul-dynamic-inventory (参照日: ).
  8. Ansible community, “NetBox Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/netbox/netbox/nb_inventory_inventory.html (参照日: ).
  9. Ansible community, “AWS EC2 Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/amazon/aws/aws_ec2_inventory.html (参照日: ).
  10. Ansible community, “Azure Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/azure/azcollection/azure_rm_inventory.html (参照日: ).
  11. Ansible community, “Google Cloud Ansible inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/google/cloud/gcp_compute_inventory.html (参照日: ).
  12. Semaphore UI, “Semaphore cloning of inventory repositories”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/local_executor_inventory.go (参照日: ).
  13. Semaphore UI, “Semaphore local execution, workflow outputs, inventory paths, host limits and branch overrides”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/local_executor.go (参照日: ).
  14. Semaphore UI, “Semaphore survey field types”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/web/src/components/SurveyVars.vue (参照日: ).
  15. Semaphore UI, “Semaphore survey inputs and task launch form”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/web/src/components/TaskForm.vue (参照日: ).
  16. Semaphore UI, “What is Semaphore UI?”. URL: https://semaphoreui.com/docs/introduction/what-is-semaphore (参照日: ).
  17. AWX project, “AWX user guide”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/index.html (参照日: ).
  18. Semaphore UI, “Semaphore source and MIT license”. URL: https://github.com/semaphoreui/semaphore (参照日: ).
  19. AWX project, “AWX source and Apache 2.0 license”. URL: https://github.com/ansible/awx (参照日: ).
  20. Semaphore UI, “Semaphore setup and first run”. URL: https://semaphoreui.com/docs/getting-started (参照日: ).
  21. Semaphore UI, “Semaphore installation methods and dependencies”. URL: https://semaphoreui.com/docs/admin-guide/installation (参照日: ).
  22. AWX project, “AWX installation paths”. URL: https://github.com/ansible/awx/blob/24.6.1/INSTALL.md (参照日: ).
  23. AWX project, “AWX Operator installation”. URL: https://docs.ansible.com/projects/awx-operator/en/latest/installation/basic-install.html (参照日: ).
  24. Semaphore UI, “Semaphore high availability prerequisites”. URL: https://semaphoreui.com/docs/admin-guide/ha#prerequisites (参照日: ).
  25. AWX project, “AWX web and task replica scaling”. URL: https://docs.ansible.com/projects/awx-operator/en/latest/user-guide/advanced-configuration/scaling-the-web-and-task-pods-independently.html (参照日: ).
  26. Semaphore UI, “Semaphore automation applications”. URL: https://semaphoreui.com/docs/user-guide/apps (参照日: ).
  27. Semaphore UI, “Semaphore task templates”. URL: https://semaphoreui.com/docs/user-guide/task-templates (参照日: ).
  28. AWX project, “AWX job templates and surveys”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/job_templates.html (参照日: ).
  29. Semaphore UI, “Survey variables”. URL: https://semaphoreui.com/docs/user-guide/task-templates/survey-vars (参照日: ).
  30. Semaphore UI, “Terraform and OpenTofu in Semaphore”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform (参照日: ).
  31. Ansible community, “Ansible Terraform module”. URL: https://docs.ansible.com/projects/ansible/latest/collections/community/general/terraform_module.html (参照日: ).
  32. Semaphore UI, “Semaphore Terraform HTTP backend”. URL: https://semaphoreui.com/docs/user-guide/apps/terraform/states (参照日: ).
  33. Semaphore UI, “Semaphore workflow nodes and approvals”. URL: https://semaphoreui.com/docs/user-guide/workflows (参照日: ).
  34. Semaphore UI, “Semaphore inventory types and stored resources”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Inventory.go (参照日: ).
  35. AWX project, “AWX job slicing”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/job_slices.html (参照日: ).
  36. Semaphore UI, “Semaphore workflow approval API routes”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/api/router.go (参照日: ).
  37. AWX project, “AWX resource, workflow approval and activity-stream access control”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/access.py (参照日: ).
  38. AWX project, “AWX workflow approval Ansible module”. URL: https://github.com/ansible/awx/blob/24.6.1/awx_collection/plugins/modules/workflow_approval.py (参照日: ).
  39. AWX project, “AWX workflow branch convergence”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/scheduler/dag_workflow.py#L51-L112 (参照日: ).
  40. AWX project, “AWX Terraform State inventory source”. URL: https://github.com/ansible/awx/blob/24.6.1/docs/docsite/rst/userguide/inventories.rst#L1092-L1121 (参照日: ).
  41. AWX project, “AWX instance-group capacity limits”. URL: https://github.com/ansible/awx/blob/24.6.1/docs/docsite/rst/administration/containers_instance_groups.rst#L247-L263 (参照日: ).
  42. AWX project, “AWX custom credential types”. URL: https://github.com/ansible/awx/blob/24.6.1/docs/credentials/custom_credential_types.md (参照日: ).
  43. AWX project, “AWX workflows”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/workflow_templates.html (参照日: ).
  44. AWX project, “AWX workflow branching and output variables”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/workflows.html (参照日: ).
  45. AWX project, “AWX collection of Ansible workflow variables”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/tasks/callback.py#L156-L160 (参照日: ).
  46. AWX project, “AWX processing of execution-node events”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/tasks/receptor.py#L544-L553 (参照日: ).
  47. AWX project, “AWX inheritance of variables between workflow jobs”. URL: https://github.com/ansible/awx/blob/24.6.1/awx/main/models/workflow.py#L324-L354 (参照日: ).
  48. Semaphore UI, “Semaphore global runners”. URL: https://semaphoreui.com/docs/admin-guide/runners/ (参照日: ).
  49. Semaphore UI, “Semaphore project runners”. URL: https://semaphoreui.com/docs/user-guide/projects/runners (参照日: ).
  50. AWX project, “AWX execution and hop nodes”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/instances.html (参照日: ).
  51. AWX project, “AWX execution environments”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/execution_environments.html (参照日: ).
  52. AWX project, “AWX Kubernetes container groups”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/containers_instance_groups.html (参照日: ).
  53. Semaphore UI, “Semaphore inventories”. URL: https://semaphoreui.com/docs/user-guide/inventory (参照日: ).
  54. AWX project, “AWX inventories”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/inventories.html (参照日: ).
  55. Semaphore UI, “Semaphore project access”. URL: https://semaphoreui.com/docs/user-guide/projects (参照日: ).
  56. Semaphore UI, “Semaphore team roles and template-level permissions”. URL: https://semaphoreui.com/docs/user-guide/team#extended-rbac (参照日: ).
  57. AWX project, “AWX role-based access controls”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/rbac.html (参照日: ).
  58. Semaphore UI, “Semaphore LDAP and OIDC authentication”. URL: https://semaphoreui.com/docs/admin-guide/authentication (参照日: ).
  59. AWX project, “AWX LDAP, OIDC and SAML authentication”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/ent_auth.html (参照日: ).
  60. Semaphore UI, “Semaphore Key Store”. URL: https://semaphoreui.com/docs/user-guide/key-store (参照日: ).
  61. AWX project, “AWX credentials and secret lookups”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/credentials.html (参照日: ).
  62. AWX project, “AWX external secret management integrations”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/credential_plugins.html (参照日: ).
  63. Semaphore UI, “Semaphore OpenBao secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/openbao (参照日: ).
  64. Semaphore UI, “Semaphore Devolutions Server secret storage”. URL: https://semaphoreui.com/docs/user-guide/key-store/devolutions-server (参照日: ).
  65. Semaphore UI, “Semaphore webhook integrations”. URL: https://semaphoreui.com/docs/user-guide/integrations (参照日: ).
  66. AWX project, “AWX webhooks”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/webhooks.html (参照日: ).
  67. Semaphore UI, “Semaphore REST API”. URL: https://semaphoreui.com/api-docs (参照日: ).
  68. Ansible community, “Ansible command execution”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/command_module.html (参照日: ).
  69. Ansible community, “Ansible PowerShell module”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/windows/win_powershell_module.html (参照日: ).
  70. Semaphore UI, “Semaphore notification channels”. URL: https://semaphoreui.com/docs/admin-guide/notifications (参照日: ).
  71. AWX project, “AWX notifications”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/notifications.html (参照日: ).
  72. Semaphore UI, “Semaphore task history and output”. URL: https://semaphoreui.com/docs/user-guide/tasks (参照日: ).
  73. Semaphore UI, “Semaphore scheduled tasks”. URL: https://semaphoreui.com/docs/user-guide/schedules (参照日: ).
  74. AWX project, “AWX activity stream”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/main_menu.html (参照日: ).
  75. Semaphore UI, “Semaphore Community, Pro and Enterprise”. URL: https://semaphoreui.com/pricing (参照日: ).
  76. Red Hat, “Red Hat: AWX and Ansible Automation Platform”. URL: https://www.redhat.com/en/technologies/management/ansible/compare-awx-vs-ansible-automation-platform (参照日: ).
  77. Red Hat, “Red Hat automation controller, formerly Ansible Tower”. URL: https://www.redhat.com/en/technologies/management/ansible/automation-controller (参照日: ).
  78. Semaphore UI, “Semaphore stable releases”. URL: https://github.com/semaphoreui/semaphore/releases (参照日: ).
  79. AWX project, “AWX release history”. URL: https://github.com/ansible/awx/releases (参照日: ).
  80. Semaphore MCP contributors, “Semaphore MCP connector”. URL: https://github.com/cloin/semaphore-mcp (参照日: ).
  81. Semaphore MCP contributors, “Semaphore MCP task execution and output”. URL: https://github.com/cloin/semaphore-mcp/blob/72f5b7008f6d560c74e01da9884e6fddbbf68999/src/semaphore_mcp/tools/tasks.py (参照日: ).
  82. LY Corporation, “AWX MCP connector and compatibility”. URL: https://github.com/lycorp-jp/awx-mcp/tree/fa4d25ffa9e04967e98dc66b219a0481d61ea814 (参照日: ).
  83. LY Corporation, “AWX MCP job template execution”. URL: https://github.com/lycorp-jp/awx-mcp/blob/fa4d25ffa9e04967e98dc66b219a0481d61ea814/awx_mcp/tools/job_templates.py (参照日: ).
  84. LY Corporation, “AWX MCP job output”. URL: https://github.com/lycorp-jp/awx-mcp/blob/fa4d25ffa9e04967e98dc66b219a0481d61ea814/awx_mcp/tools/jobs.py (参照日: ).
  85. HashiCorp, “Terraform local state backend”. URL: https://developer.hashicorp.com/terraform/language/backend/local (参照日: ).
  86. HashiCorp, “Terraform state locking”. URL: https://developer.hashicorp.com/terraform/language/state/locking (参照日: ).
  87. Semaphore UI, “Semaphore variable groups”. URL: https://semaphoreui.com/docs/user-guide/environment (参照日: ).
  88. Semaphore UI, “Semaphore runner selection and capacity”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/RemoteJob.go (参照日: ).
  89. Semaphore UI, “Semaphore cron and one-time schedule execution”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/schedules/SchedulePool.go (参照日: ).
  90. AWX project, “AWX schedules”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/scheduling.html (参照日: ).
  91. Ansible community, “Ansible constructed inventory plugin”. URL: https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/constructed_inventory.html (参照日: ).
  92. Ansible community, “Ansible cache plugins”. URL: https://docs.ansible.com/projects/ansible/latest/plugins/cache.html (参照日: ).
  93. Semaphore UI, “View and export the Semaphore audit log”. URL: https://semaphoreui.com/docs/admin-guide/audit-log/view (参照日: ).
  94. Semaphore UI, “Semaphore administrator audit-log access”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/api/audit_log.go (参照日: ).
  95. AWX project, “AWX logging and aggregation”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/logging.html (参照日: ).
  96. Semaphore UI, “Semaphore audit log”. URL: https://semaphoreui.com/docs/admin-guide/audit-log (参照日: ).
  97. Semaphore UI, “Ansible role and collection installation”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/AnsibleApp.go (参照日: ).
  98. Semaphore UI, “Task-history cleanup”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/sql/task.go (参照日: ).
  99. Semaphore UI, “Ansible inventory overrides”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/TaskRunner.go (参照日: ).
  100. AWX project, “Projects, Ansible Galaxy and collections”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/userguide/projects.html#ansible-galaxy-support (参照日: ).
  101. AWX project, “Management jobs”. URL: https://docs.ansible.com/projects/awx/en/24.6.1/administration/management_jobs.html (参照日: ).
  102. Semaphore UI, “Terraform plan and apply execution”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db_lib/TerraformApp.go (参照日: ).
  103. Semaphore UI, “Repository working directories”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/db/Repository.go (参照日: ).
  104. HashiCorp, “Terraform plan command”. URL: https://developer.hashicorp.com/terraform/cli/commands/plan (参照日: ).
  105. HashiCorp, “Terraform apply command”. URL: https://developer.hashicorp.com/terraform/cli/commands/apply (参照日: ).
  106. Semaphore UI, “Security policy”. URL: https://github.com/semaphoreui/semaphore/security/policy (参照日: ).
  107. AWX project, “Security policy”. URL: https://github.com/ansible/awx/security/policy (参照日: ).
  108. AWX project, “Release status and project overview”. URL: https://github.com/ansible/awx/blob/devel/README.md (参照日: ).
  109. Semaphore UI, “Semaphore notification channel implementation”. URL: https://github.com/semaphoreui/semaphore/blob/58a596ed20b724af67c468588edcda12d1779549/services/tasks/alert.go (参照日: ).

Semaphore UI チームが、上記のドキュメント、リポジトリ、料金ページを参照して作成した比較です。各出典に閲覧日を記載しています。