Best practice per le operazioni di Terraform

Questo documento fornisce linee guida e suggerimenti per le operazioni di Terraform.

Questa guida non è un'introduzione a Terraform. Per un'introduzione all'utilizzo Terraform con Google Cloud, consulta Inizia a utilizzare Terraform.

Pianifica sempre prima

Genera sempre prima un piano per le esecuzioni di Terraform. Salva il piano in un file di output. Esegui il piano dopo l'approvazione del proprietario dell'infrastruttura. Anche quando gli sviluppatori stanno apportando modifiche di prototipazione a livello locale, devono generare un piano le risorse da aggiungere, modificare ed eliminare prima di applicare e il piano d'azione.

Implementare una pipeline automatizzata

Per garantire un contesto di esecuzione coerente, esegui Terraform e l'addestramento degli strumenti. Se un sistema di compilazione (come Jenkins) è già in uso e ampiamente adottato, usalo per eseguire automaticamente i comandi terraform plan e terraform apply. Se non è disponibile alcun sistema esistente, adotta Cloud Build o Terraform Cloud.

Usa le credenziali dell'account di servizio per l'integrazione continua

Quando Terraform viene eseguito da una macchina in una pipeline CI/CD, dovrebbe ereditare le credenziali dell'account di servizio dal servizio che esegue la pipeline. Ove possibile, esegui pipeline CI su Google Cloud perché Inserisci le credenziali di Cloud Build, Google Kubernetes Engine o Compute Engine senza scaricare le chiavi degli account di servizio.

Per le pipeline che vengono eseguite al di fuori di Google Cloud, preferisci federazione delle identità per i carichi di lavoro per ottenere le credenziali senza scaricare le chiavi degli account di servizio.

Evitare di importare risorse esistenti

Se possibile, evita di importare risorse esistenti (utilizzando terraform import), perché l'esecuzione quindi può rendere difficile comprendere appieno la provenienza e la configurazione delle risorse create manualmente. Crea invece nuove risorse tramite Terraform ed eliminare le risorse precedenti.

Nei casi in cui l'eliminazione delle vecchie risorse comporterebbe un notevole lavoro manuale, usa il comando terraform import con approvazione esplicita. Dopo che una risorsa viene importati in Terraform, puoi gestirlo esclusivamente con Terraform.

Google offre uno strumento che puoi utilizzare per importare le risorse Google Cloud nello stato di Terraform. Per ulteriori informazioni, consulta Importare le tue risorse Google Cloud in Terraform .

Non modificare manualmente lo stato di Terraform

Il file di stato di Terraform è fondamentale per mantenere il mapping tra Configurazione Terraform e risorse Google Cloud. La corruzione può portare ai principali problemi infrastrutturali. Quando le modifiche allo stato di Terraform necessario, utilizza terraform state .

Rivedi regolarmente i blocchi delle versioni

Il blocco delle versioni garantisce stabilità, ma impedisce correzioni di bug e altre dei miglioramenti all'integrazione nella configurazione. Pertanto, controllare regolarmente i pin di versione per Terraform, provider e moduli Terraform.

Per automatizzare questo processo, utilizza uno strumento come Dependabot.

Usa le credenziali predefinite dell'applicazione durante l'esecuzione in locale

Quando gli sviluppatori eseguono l'iterazione locale della configurazione Terraform, eseguire l'autenticazione gcloud auth application-default login per generare le credenziali predefinite dell'applicazione. Non scaricare l'account di servizio poiché le chiavi scaricate sono più difficili da gestire e proteggere.

Impostare gli alias su Terraform

Per semplificare lo sviluppo locale, puoi aggiungere alias alla shell di comando profilo:

  • alias tf="terraform"
  • alias terrafrom="terraform"

Passaggi successivi