Terragrunt
Terragrunt ist ein Wrapper für Terraform und OpenTofu, der Konfigurationen DRY hält und Abhängigkeiten zwischen Modulen verwaltet. Semaphore führt es auf die gleiche Weise aus wie Terraform/OpenTofu, mit einigen hier beschriebenen Unterschieden.
Voraussetzungen
- Installieren Sie die Binärdatei
terragruntsowie eine Binärdateiterraformodertofuauf dem Semaphore-Server oder auf dem Runner, der die Tasks ausführt. - Aktivieren Sie die Anwendung Terragrunt Code: Sie ist standardmäßig deaktiviert. Öffnen Sie Applications über das Kontomenü und schalten Sie den Schalter ein, siehe Apps.
Ein Terragrunt-Task-Template erstellen
- Öffnen Sie Task Templates und klicken Sie auf New Template.
- Wählen Sie Terragrunt Code als App.
- Legen Sie das Repository und das Unterverzeichnis mit Ihrer
terragrunt.hclfest. - Wählen oder erstellen Sie im Feld Inventory einen Workspace. Terragrunt-Task-Templates verwenden Inventories des Typs
terragrunt-workspace, siehe Workspaces. - Klicken Sie auf Create und anschließend auf Run.

Tasks ausführen
Der Dialog für einen neuen Task bietet dieselben Optionen wie bei Terraform: Plan, Destroy, Auto Approve, Upgrade und Reconfigure.
Semaphore ruft terragrunt run -- <terraform arguments> auf und übergibt die Terraform- oder OpenTofu-Binärdatei mit --tf-path, sofern Sie --tf-path nicht bereits in den CLI-Argumenten des Task Template gesetzt haben. Die Auswahl des Workspace erfolgt mit terragrunt run -- workspace select -or-create=true <name>.
Variablen aus den ausgewählten Variable Groups werden als Umgebungsvariablen übergeben; verwenden Sie daher für Eingabevariablen das Präfix TF_VAR_. Zusätzliche Variablen und Survey-Variablen werden als Argumente -var name=value übergeben.
Hinweise
terragruntführt vor jedem Befehl automatischinitaus.- Das HTTP-State-Backend und die State-Liste auf dem Tab Workspaces funktionieren wie bei Terraform, siehe HTTP-Backend.
- Um
run-allüber mehrere Module hinweg zu verwenden, fügen Sie die Argumente in CLI args des Task Template hinzu.