Melhores práticas para operações do Terraform

Este documento fornece diretrizes e recomendações para operações do Terraform.

Este guia não é uma introdução ao Terraform. Para uma introdução ao uso do Terraform com o Google Cloud, consulte Primeiros passos com o Terraform.

Sempre planejar primeiro

Sempre gere um plano para as execuções do Terraform. Salve o plano em um arquivo de saída. Depois que um proprietário da infraestrutura aprová-la, execute o plano. Mesmo quando os desenvolvedores fazem a prototipagem de mudanças localmente, eles precisam gerar um plano e revisar os recursos a serem adicionados, modificados e destruídos antes de aplicar o plano.

Implementar um pipeline automatizado

Para garantir um contexto de execução consistente, execute o Terraform com ferramentas automatizadas. Se um sistema de compilação (como o Jenkins) já estiver em uso e amplamente adotado, use-o para executar os comandos terraform plan e terraform apply automaticamente. Se não houver um sistema disponível, adote o Cloud Build ou o Terraform Cloud.

Usar credenciais de conta de serviço para integração contínua

Quando o Terraform é executado em uma máquina em um pipeline de CI/CD, ele precisa herdar as credenciais da conta de serviço do serviço que executa o pipeline. Sempre que possível, execute pipelines de CI no Google Cloud porque o Cloud Build, o Google Kubernetes Engine ou o Compute Engine injetam credenciais sem fazer o download de chaves da conta de serviço.

Para pipelines executados fora do Google Cloud, prefira a federação de identidade da carga de trabalho para receber credenciais sem fazer o download de chaves da conta de serviço.

Evitar importar recursos atuais

Sempre que possível, evite importar recursos existentes, usando (terraform import), porque isso pode dificultar a compreensão da procedência e a configuração dos recursos criados manualmente. Em vez disso, crie novos recursos por meio do Terraform e exclua os recursos antigos.

Nos casos em que a exclusão de recursos antigos criaria tarefas repetitivas, use o comando terraform import com aprovação explícita. Depois que um recurso for importado para o Terraform, gerencie-o exclusivamente com o Terraform.

O Google oferece uma ferramenta que pode ser usada para importar seus recursos do Google Cloud para o estado do Terraform. Para mais informações, consulte Importar recursos do Google Cloud para o estado do Terraform.

Não modificar o estado do Terraform manualmente

O arquivo de estado do Terraform é fundamental para manter o mapeamento entre a configuração do Terraform e os recursos do Google Cloud. A corrupção pode levar a grandes problemas de infraestrutura. Quando modificações no estado do Terraform forem necessárias, use o comando terraform state.

Revisar regularmente os PINs de versão

Fixar versões garante a estabilidade, mas impede que correções de bugs e outras melhorias sejam incorporadas à sua configuração. Por isso, verifique regularmente os pinos de versão do Terraform, dos provedores e dos módulos do Terraform.

Para automatizar esse processo, use uma ferramenta como o Dependabot.

Usar credenciais padrão do aplicativo para executar localmente

Quando os desenvolvedores estão iterando localmente na configuração do Terraform, eles precisam se autenticar executando gcloud auth application-default login para gerar credenciais padrão do aplicativo. Não faça o download de chaves de conta de serviço, porque elas são mais difíceis de gerenciar e proteger.

Definir aliases para o Terraform

Para facilitar o desenvolvimento local, adicione aliases ao seu perfil do shell de comando:

  • alias tf="terraform"
  • alias terrafrom="terraform"

A seguir