OpenTofu na AWS: do Zero à Infraestrutura Real
Autor: Andrew Ramires

1.4 Destruindo Toda a Infraestrutura

Nesta etapa, vamos aprender duas formas de destruir infraestrutura no OpenTofu.

⚡ Visão rápida: esta etapa fecha a fase 1 mostrando como voltar o projeto para um estado limpo tanto por comando quanto por remoção de código.

1.4.1 Destruir tudo com tofu destroy

Se você digitar o comando abaixo, o OpenTofu vai destruir toda a infraestrutura que estiver sob gerenciamento naquele projeto:

tofu destroy

Esse comando é útil quando alguns problemas aparecem e tornam o projeto ou o módulo instável.

Nesses casos, pode ser mais simples destruir tudo e construir novamente do que tentar corrigir um estado já inconsistente.

1.4.2 Faça o teste: destruir e recriar

Neste momento, execute:

tofu destroy

Depois disso, recrie o que foi destruído executando novamente:

tofu apply

Esse exercício mostra que o ciclo de vida da infraestrutura pode ser controlado por código: destruir, recriar e voltar ao estado esperado.

1.4.3 Outra forma de destruir: remover o recurso do arquivo

Outra forma de destruir infraestrutura é remover o bloco de recurso do arquivo .tf e depois aplicar o plano.

Isso funciona porque o plano é a diferença entre:

  • o que está escrito no seu arquivo;
  • as referências salvas no banco de dados do projeto, ou seja, no terraform.tfstate;
  • e os valores consultados pelo provider no sistema ou na nuvem gerenciada.

Se o recurso existe no state, mas não existe mais no arquivo, o OpenTofu entende que ele precisa ser removido.

1.4.4 Removendo o null_resource pelo código

Abra o main.tf e remova:

  • o bloco resource "null_resource" "exemplo" { ... };
  • o output "null_resource_id", porque essa referência deixa de existir quando o recurso é removido.

Depois disso, execute:

tofu plan
tofu apply

Nesse caso, a destruição não acontece porque você rodou tofu destroy, mas porque o código deixou de declarar aquele recurso.

1.4.5 Estado final esperado

Ao final desta etapa, o arquivo main.tf deve estar totalmente em branco.

Esse fechamento é importante porque ele encerra a fase 1 com o projeto limpo, pronto para a próxima fase.