Terragrunt
Terragrunt は Terraform と OpenTofu のラッパ ーで、構成を DRY に保ち、モジュール間の依存関係を管理します。Semaphore は Terraform/OpenTofu と同じ方法で実行しますが、ここで説明するいくつかの違いがあります。
前提条件
- Semaphore サーバー、またはタスクを実行するランナーに、
terragruntのバイナリとterraformまたはtofuのバイナリをインストールします。 - Terragrunt Code アプリケーションを有効にします。既定では無効になっています。アカウントメニューから アプリケーション を開いてスイッチをオンにしてください。アプリケーションを参照してください。
Terragrunt テンプレートの作成
- タスクテンプレート に移動し、新しいテンプレート をクリックします。
- アプリとして Terragrunt Code を選択します。
- リポジトリ と、
terragrunt.hclがあるサブディレクトリを設定します。 - インベントリのフィールドで ワークスペース を選択または作成します。Terragrunt テンプレートは
terragrunt-workspaceの種類のインベ ントリを使用します。ワークスペースを参照してください。 - 作成 をクリックし、続いて 実行 をクリックします。

タスクの実行
新しいタスクのダイアログには、Terraform と同じオプション(Plan、Destroy、Auto Approve、Upgrade、Reconfigure)が表示されます。
Semaphore は terragrunt run -- <terraform arguments> を呼び出し、テンプレートの CLI 引数で --tf-path をすでに設定していない限り、--tf-path で Terraform または OpenTofu のバイナリを渡します。ワークスペースの選択は terragrunt run -- workspace select -or-create=true <name> で行われます。
選択した 変数グループ の変数は環境変数として渡されるため、入力変数には TF_VAR_ プレフィックスを使用してください。追加変数とサーベイ変数は -var name=value の引数として渡されます。
注意事項
terragruntは、すべてのコマンドの前に自動的にinitを実行します。- HTTP の state バックエンドと ワークスペース タブの state 一覧は、Terraform と同様に動作します。HTTP バックエンドを参照してください。
- 複数のモジュールに対して
run-allを使用するには、テンプレートの CLI 引数 に引数を追加してください。