Le best practice per il provisioning delle risorse Google Cloud con Terraform sono integrate nei moduli del Cloud Foundation Toolkit gestiti da Google. Questo documento ribadisce alcune di queste best practice.
Questa guida non è un'introduzione a Terraform. Per un'introduzione all'utilizzo di Terraform con Google Cloud, consulta Introduzione a Terraform.
Crea immagini di macchine virtuali
In generale, ti consigliamo di creare immagini delle macchine virtuali utilizzando uno strumento come Packer. Terraform deve quindi avviare le macchine utilizzando le immagini precotte.
Se le immagini precotte non sono disponibili, Terraform può trasferire
a uno strumento di gestione delle configurazioni con un blocco provisioner
. Ti consigliamo di evitare questo metodo e di utilizzarlo solo come ultima risorsa.
Per ripulire lo stato precedente associato all'istanza, i provisioner che richiedono la logica di smantellamento devono utilizzare un blocco provisioner
con when = destroy
.
Terraform deve fornire le informazioni di configurazione della VM alla configurazione per la gestione metadati dell'istanza.
Gestire Identity and Access Management
Durante il provisioning di associazioni IAM con Terraform, vengono sono disponibili diverse risorse:
google_*_iam_policy
(ad es.google_project_iam_policy
)google_*_iam_binding
(ad es.google_project_iam_binding
)google_*_iam_member
(ad es.google_project_iam_member
)
google_*_iam_policy
e google_*_iam_binding
creano contenuti autorevoli
Associazioni IAM, in cui le risorse Terraform sono l'unica
una fonte attendibile per le autorizzazioni che è possibile assegnare alla risorsa pertinente.
Se le autorizzazioni cambiano al di fuori di Terraform, Terraform sovrascrive tutte le autorizzazioni alla successiva esecuzione per rappresentare il criterio come definito nella configurazione. Questa operazione potrebbe essere utile per le risorse gestite interamente da una determinata configurazione Terraform, ma significa che i ruoli gestiti automaticamente da Google Cloud vengono rimossi, con il rischio di interrompere la funzionalità di alcuni servizi.
Per evitare ciò, ti consigliamo di utilizzare direttamente le risorse google_*_iam_member
o il modulo IAM di Google.
Passaggi successivi
- Scopri le best practice per il controllo delle versioni.
- Scopri le best practice per le operazioni di Terraform.