Olá, Paulo. Tudo bem?
Sua avaliação está correta. Quando o Terraform é executado em uma nova máquina, como uma instância de GitHub Actions, ele não tem acesso ao arquivo de estado anterior a menos que esse arquivo de estado seja explicitamente armazenado em um backend remoto acessível, como o S3 da AWS, o Google Cloud Storage, ou outro serviço de armazenamento de estado suportado pelo Terraform.
O comando terraform destroy
precisa do arquivo de estado para saber quais recursos precisam ser destruídos. Se o arquivo de estado não estiver presente ou não for o mesmo que foi usado para criar a infraestrutura, o Terraform não saberá quais recursos destruir, tornando o comando destroy
ineficaz nesse contexto.
Para que o Terraform possa buscar a infraestrutura já existente sem um arquivo de estado preenchido localmente, você precisaria configurar um backend remoto para o estado do Terraform. Isso permitiria que diferentes execuções do Terraform, em diferentes máquinas, acessem o mesmo arquivo de estado. Outra abordagem seria importar manualmente o estado atual da infraestrutura existente usando o comando terraform import
, mas isso pode ser trabalhoso e não é a abordagem mais comum para integração contínua.
Espero ter ajudado e bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!