Terragrunt
Terragrunt è un wrapper per Terraform e OpenTofu che mantiene le configurazioni DRY e gestisce le dipendenze tra i moduli. Semaphore lo esegue nello stesso modo di Terraform/OpenTofu, con alcune differenze descritte qui.
Prerequisiti
- Installare il binario
terragrunte un binarioterraformoppuretofusul server Semaphore o sul Runner che esegue i Task. - Abilitare l'applicazione Terragrunt Code: per impostazione predefinita è disabilitata. Aprire Applications dal menu dell'account e attivare l'interruttore, vedere Applicazioni.
Creazione di un Task Template Terragrunt
- Andare in Task Templates e fare clic su New Template.
- Selezionare Terragrunt Code come App.
- Impostare il Repository e la sottodirectory che contiene il file
terragrunt.hcl. - Selezionare o creare un Workspace nel campo Inventory. I Task Template Terragrunt utilizzano Inventory di tipo
terragrunt-workspace, vedere Workspace. - Fare clic su Create, poi su Run.

Esecuzione dei Task
La finestra di dialogo New Task offre le stesse opzioni previste per Terraform: Plan, Destroy, Auto Approve, Upgrade e Reconfigure.
Semaphore invoca terragrunt run -- <terraform arguments> e passa il binario di Terraform o OpenTofu tramite --tf-path, a meno che --tf-path non sia già impostato negli argomenti CLI del Task Template. La selezione del workspace viene eseguita con terragrunt run -- workspace select -or-create=true <name>.
Le variabili dei Variable Group selezionati vengono passate come variabili d'ambiente, quindi utilizzare il prefisso TF_VAR_ per le variabili di input. Le variabili aggiuntive e le variabili di survey vengono passate come argomenti -var name=value.
Note
terragruntesegue automaticamenteinitprima di ogni comando.- Il backend di stato HTTP e l'elenco degli stati nella scheda Workspaces funzionano come per Terraform, vedere Backend HTTP.
- Per utilizzare
run-allsu più moduli, aggiungere gli argomenti nel campo CLI args del Task Template.