HTTP バックエンド Pro
Semaphore UI の Terraform 用 HTTP バックエンドは、Terraform のステートファイルを Semaphore 内で直接、安全に保存・管理します。Pro プランで利用でき、いくつかの重要な利点があります。
機能
- 安全なステート保存: ステートファイルは Semaphore 内に安全に保存されます。
- ステートロック: 同じステートファイルへの同時変更を防ぎます。
- バージョン履歴: インフラストラクチャのステートの変更を時 系列で追跡できます。
- UI との統合: Semaphore のインターフェースからステートファイルを直接管理できます。
設定
組み込みの HTTP バックエンドを使い始めるには、まず Terraform タスクテンプレートのワークスペースを作成する必要があります。
ワークスペースを追加するには、Terraform/OpenTofu テンプレートのワークスペースタブに移動します。
ワークスペースを作成する際、Terraform コードで使用されるプライベートモジュールをクローンするための SSH キーを選択するよう求められます。プライベートモジュールを使用しない場合は、None オプションを選択してください。
タスクでの HTTP バックエンドの使用
Terraform タスクのステートを保存するために組み込みの HTTP バックエンドを使用する場合、Terraform コード内でバックエンドを手動で設定する必要はありません。Semaphore は実行時に設定ファイルを自動的に作成できます。これを有効にするには、下のスクリーンショットのように、タスクテンプレートの設定でバックエンド設定を上書きオプションにチェックを入れるだけです。
必要に応じて、実行時に動的に作成される設定ファイルの名前を指定できます。これは、コードにすでにバックエンド設定ファイルが含まれており、Semaphore の組み込みバックエンドと連携するためにそれを動的に上書きする必要がある場合に便利です。
Semaphore の外部での HTTP バックエンドの使用
組み込みの HTTP バックエンドは、Semaphore 内でタスクを実行する場合だけでなく、ローカルのターミナルなど Semaphore の外部で Terraform コードを実行する場合にも使用できます。
これを可能にするために、Semaphore ではステートストレージのエイリアス (一意の HTTP エンドポイント) を作成できます。エイリアスを使用すると、外部環境からステートファイルを簡単に参照できます。
設定するには、ワークスペースタブに移動して目的のワークスペースを選択し、エイリアスを追加します。また、バックエンドへのアクセス認証に使用される、ユーザー名とパスワードを持つキーを選択する必要があります。
その後、Terraform コードにバックエンド設定を追加する必要があります。
terraform {
backend "http" {
address = "http://localhost:3000/api/terraform/***"
username = "***"
password = "***"
}
}
これで、ターミナルから実行した場合でも Terraform は Semaphore の組み込み HTTP バックエンドを使用するようになります。
terraform apply