Best practice per le operazioni di Terraform

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

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

Pianifica sempre in anticipo

Genera sempre prima un piano per le esecuzioni di Terraform. Salva il piano in un file di output. Dopo l'approvazione da parte di un proprietario dell'infrastruttura, esegui il piano. Anche quando gli sviluppatori creano prototipi delle modifiche in locale, devono generare un piano e esaminare le risorse da aggiungere, modificare e distruggere prima di applicarlo.

Implementare una pipeline automatizzata

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

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

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

Per le pipeline eseguite al di fuori di Google Cloud, preferisci la 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é in questo modo può essere difficile comprendere appieno la provenienza e la configurazione delle risorse create manualmente. Crea invece nuove risorse tramite Terraform ed elimina le vecchie risorse.

Nei casi in cui l'eliminazione delle risorse precedenti richiederebbe un impegno significativo, utilizza il comando terraform import con approvazione esplicita. Dopo aver importato una risorsa in Terraform, gestiscila esclusivamente con Terraform.

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

Non modificare manualmente lo stato di Terraform

Il file di stato di Terraform è fondamentale per mantenere la mappatura tra la configurazione di Terraform e le risorse. Google Cloud La corruzione può portare a gravi problemi di infrastruttura. Quando sono necessarie modifiche allo stato di Terraform, utilizza il comando terraform state.

Controlla regolarmente le versioni bloccate

Il blocco delle versioni garantisce la stabilità, ma impedisce l'integrazione di correzioni di bug e altri miglioramenti nella configurazione. Pertanto, esamina regolarmente i pin delle versioni per Terraform, i provider e i moduli Terraform.

Per automatizzare questa procedura, utilizza uno strumento come Dependabot.

Utilizzare le credenziali predefinite dell'applicazione quando l'applicazione viene eseguita localmente

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

Impostare gli alias per Terraform

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

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

Passaggi successivi