Le best practice per il provisioning delle risorse Google Cloud con Terraform sono integrati nei moduli Cloud Foundation Toolkit che Gestita da Google. Questo documento ribadisce alcune di queste best practice.
Questa guida non è un'introduzione a Terraform. Per un'introduzione all'utilizzo Terraform con Google Cloud, consulta Inizia a utilizzare Terraform.
Crea immagini di macchine virtuali
In generale, consigliamo di creare immagini delle macchine virtuali con 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
. Me
consigliamo di evitare questo metodo e di usarlo solo come un
ultima risorsa.
Per ripulire il vecchio stato associato all'istanza, i provisioner che richiedono
la logica di eliminazione deve usare un blocco provisioner
con when = destroy
.
Terraform deve fornire le informazioni di configurazione della VM alla configurazione per la gestione metadati dell'istanza.
Gestisci 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 per rappresentare il criterio come definito configurazione. Questo potrebbe avere senso per le risorse interamente gestite da un configurazione Terraform particolare, ma i ruoli gestite automaticamente da Google Cloud, che potrebbero interrompere la funzionalità di alcuni servizi.
Per evitare questo problema, ti consigliamo di utilizzare google_*_iam_member
risorse
direttamente o
Modulo IAM di Google.
Passaggi successivi
- Scopri le best practice per il controllo della versione.
- Scopri le best practice per le operazioni di Terraform.