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 la guida introduttiva a Terraform.
Crea immagini di macchine virtuali
In generale, ti consigliamo di creare immagini di 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 le nuove macchine virtuali a uno strumento di gestione della configurazione 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 rimozione devono utilizzare un blocco provisioner
con when = destroy
.
Terraform deve fornire informazioni sulla configurazione delle VM per la gestione della configurazione con i metadati dell'istanza.
Gestisci Identity and Access Management
Durante il provisioning di associazioni IAM con Terraform, 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 associazioni IAM autorevoli, in cui le risorse Terraform fungono da unica fonte attendibile per le autorizzazioni che possono essere assegnate alla risorsa pertinente.
Se le autorizzazioni cambiano al di fuori di Terraform, Terraform nella prossima esecuzione sovrascrive tutte le autorizzazioni per rappresentare il criterio come definito nella configurazione. Questo potrebbe avere senso per le risorse interamente gestite da una determinata configurazione Terraform, ma significa che i ruoli gestiti automaticamente da Google Cloud vengono rimossi, interrompendo potenzialmente la funzionalità di alcuni servizi.
Per evitare questo problema, ti consigliamo di utilizzare le risorse google_*_iam_member
direttamente
o il
modulo IAM di Google.
Passaggi successivi
- Scopri le best practice per il controllo della versione.
- Scopri le best practice per le operazioni di Terraform.