Práticas recomendadas 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 à utilização do Terraform com o Google Cloud, consulte o artigo Comece a usar o Terraform.

Planeie sempre primeiro

Gere sempre um plano primeiro para as execuções do Terraform. Guarde o plano num ficheiro de saída. Depois de um proprietário da infraestrutura o aprovar, execute o plano. Mesmo quando os programadores estão a criar protótipos de alterações localmente, devem gerar um plano e rever os recursos a adicionar, modificar e destruir antes de aplicar o plano.

Implemente um pipeline automatizado

Para garantir um contexto de execução consistente, execute o Terraform através de ferramentas automatizadas. Se já estiver a usar e for amplamente adotado um sistema de compilação (como o Jenkins), use-o para executar automaticamente os comandos terraform plan e terraform apply. Se não existir nenhum sistema, adote o Cloud Build ou o Terraform Cloud.

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

Quando o Terraform é executado a partir de uma máquina numa pipeline de CI/CD, deve herdar as credenciais da conta de serviço do serviço que executa a 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 transferir chaves de contas de serviço.

Para pipelines executados fora do Google Cloud, prefira a federação de identidades da carga de trabalho para obter credenciais sem transferir chaves de contas de serviço.

Evite importar recursos existentes

Sempre que possível, evite importar recursos existentes (usando terraform import), porque isso pode dificultar a compreensão total da proveniência e da configuração dos recursos criados manualmente. Em alternativa, crie novos recursos através do Terraform e elimine os recursos antigos.

Nos casos em que a eliminação de recursos antigos criaria um trabalho significativo, use o comando terraform import com aprovação explícita. Depois de um recurso ser importado para o Terraform, faça a gestão do mesmo exclusivamente com o Terraform.

A Google disponibiliza uma ferramenta que pode usar para importar os seus Google Cloud recursos para o estado do Terraform. Para mais informações, consulte o artigo Importe os seus Google Cloud recursos para o estado do Terraform.

Não modifique manualmente o estado do Terraform

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

Reveja regularmente as fixações de versões

A fixação de versões garante a estabilidade, mas impede que as correções de erros e outras melhorias sejam incorporadas na sua configuração. Por conseguinte, reveja regularmente as versões fixas do Terraform, dos fornecedores do Terraform e dos módulos.

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

Use credenciais padrão da aplicação quando executar localmente

Quando os programadores iteram localmente na configuração do Terraform, devem autenticar-se executando o comando gcloud auth application-default login para gerar credenciais predefinidas da aplicação. Não transfira chaves de contas de serviço, porque as chaves transferidas são mais difíceis de gerir e proteger.

Defina aliases para o Terraform

Para facilitar o desenvolvimento local, pode adicionar alias ao perfil da shell de comandos:

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

O que se segue?