As práticas recomendadas para o aprovisionamento de Google Cloud recursos com o Terraform estão integradas nos módulos do Cloud Foundation Toolkit que a Google mantém. Este documento reitera algumas destas práticas recomendadas.
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.
Crie imagens de máquinas virtuais
Em geral, recomendamos que incorpore imagens de máquinas virtuais com uma ferramenta como o Packer. Em seguida, o Terraform só precisa de iniciar máquinas com as imagens pré-criadas.
Se as imagens pré-criadas não estiverem disponíveis, o Terraform pode transferir novas máquinas virtuais para uma ferramenta de gestão de configuração com um bloco provisioner
. Recomendamos que evite este método e o use apenas como último recurso.
Para limpar o estado antigo associado à instância, os aprovisionadores que requerem lógica de desativação devem usar um bloco provisioner
com when = destroy
.
O Terraform deve fornecer informações de configuração da VM à gestão de configuração com metadados de instâncias.
Faça a gestão da gestão de identidade e de acesso
Quando aprovisiona associações de IAM com o Terraform, estão disponíveis vários recursos diferentes:
google_*_iam_policy
(por exemplo,google_project_iam_policy
)google_*_iam_binding
(por exemplo,google_project_iam_binding
)google_*_iam_member
(por exemplo,google_project_iam_member
)
google_*_iam_policy
e google_*_iam_binding
criam associações de IAM autorizadas, em que os recursos do Terraform servem como a única fonte de informação fidedigna para as autorizações que podem ser atribuídas ao recurso relevante.
Se as autorizações forem alteradas fora do Terraform, o Terraform na sua próxima execução substitui todas as autorizações para representar a política conforme definida na sua configuração. Isto pode fazer sentido para recursos totalmente geridos por uma configuração específica do Terraform, mas significa que as funções geridas automaticamente pelo Google Cloud são removidas, o que pode interromper a funcionalidade de alguns serviços.
Para evitar esta situação, recomendamos que use os recursos google_*_iam_member
diretamente ou o módulo IAM da Google.
O que se segue?
- Saiba mais acerca das práticas recomendadas para o controlo de versões.
- Saiba mais sobre as práticas recomendadas para operações do Terraform.