メインコンテンツまでスキップ

Terragrunt

Terragrunt は Terraform と OpenTofu のラッパーで、構成を DRY に保ち、モジュール間の依存関係を管理します。Semaphore は Terraform/OpenTofu と同じ方法で実行しますが、ここで説明するいくつかの違いがあります。

前提条件

  1. Semaphore サーバー、またはタスクを実行するランナーに、terragrunt のバイナリと terraform または tofu のバイナリをインストールします。
  2. Terragrunt Code アプリケーションを有効にします。既定では無効になっています。アカウントメニューから アプリケーション を開いてスイッチをオンにしてください。アプリケーションを参照してください。

Terragrunt テンプレートの作成

  1. タスクテンプレート に移動し、新しいテンプレート をクリックします。
  2. アプリとして Terragrunt Code を選択します。
  3. リポジトリ と、terragrunt.hcl があるサブディレクトリを設定します。
  4. インベントリのフィールドで ワークスペース を選択または作成します。Terragrunt テンプレートは terragrunt-workspace の種類のインベントリを使用します。ワークスペースを参照してください。
  5. 作成 をクリックし、続いて 実行 をクリックします。

Terragrunt テンプレート

タスクの実行

新しいタスクのダイアログには、Terraform と同じオプション(PlanDestroyAuto ApproveUpgradeReconfigure)が表示されます。

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 引数 に引数を追加してください。