Terragrunt
O Terragrunt é um wrapper para Terraform e OpenTofu que mantém as configurações DRY e gerencia dependências entre módulos. O Semaphore o executa da mesma forma que o Terraform/OpenTofu, com algumas diferenças descritas aqui.
Pré-requisitos
- Instale o binário
terragrunte um binárioterraformoutofuno servidor Semaphore ou no runner que executa as tarefas. - Habilite o aplicativo Terragrunt Code: ele vem desabilitado por padrão. Abra Aplicativos no menu da conta e ative a chave, consulte Aplicativos.
Criando um modelo Terragrunt
- Vá até Modelos de Tarefa e clique em Novo Modelo.
- Selecione Terragrunt Code como o app.
- Defina o Repositório e o subdiretório com o seu
terragrunt.hcl. - Selecione ou crie um Workspace no campo Inventário. Os modelos Terragrunt usam inventários do tipo
terragrunt-workspace, consulte Workspaces. - Clique em Criar e depois em Executar.

Executando tarefas
A caixa de diálogo Nova Tarefa oferece as mesmas opções que para o Terraform: Plan, Destroy, Auto Approve, Upgrade e Reconfigure.
O Semaphore chama terragrunt run -- <terraform arguments> e passa o binário do Terraform ou do OpenTofu com --tf-path, a menos que você já tenha definido --tf-path nos argumentos de CLI do modelo. A seleção do workspace é feita com terragrunt run -- workspace select -or-create=true <name>.
As variáveis dos Grupos de Variáveis selecionados são passadas como variáveis de ambiente, portanto use o prefixo TF_VAR_ para as variáveis de entrada. Variáveis extras e variáveis de survey são passadas como argumentos -var name=value.
Observações
- O
terragruntexecutainitautomaticamente antes de cada comando. - O backend de estado HTTP e a lista de estados na aba Workspaces funcionam como no Terraform, consulte Backend HTTP.
- Para usar
run-allem vários módulos, adicione os argumentos em Argumentos de CLI do modelo.