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
- Saiba mais sobre as práticas recomendadas para usar o Terraform com segurança.
- Saiba mais sobre as práticas recomendadas para testar módulos e configurações do Terraform.