Hashicorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e gestire l'infrastruttura cloud. Terraform fornisce plug-in chiamati provider che ti consentono di interagire con i cloud provider e altre API. Puoi utilizzare il provider Terraform per Google Cloud (provider Google Cloud) per eseguire il provisioning e gestire l'infrastruttura Google Cloud.
Vantaggi dell'utilizzo di Terraform
Questa sezione illustra alcuni dei vantaggi dell'utilizzo di Terraform per eseguire il provisioning e gestire l'infrastruttura Google Cloud:
- Terraform è lo strumento più utilizzato per eseguire il provisioning e l'automazione dell'infrastruttura Google Cloud. Puoi utilizzare il provider Google Cloud per configurare e gestire tutte le risorse Google Cloud utilizzando la stessa sintassi e gli stessi strumenti dichiarativi.
- Terraform ti consente di specificare lo stato finale che preferisci per la tua infrastruttura. Puoi quindi eseguire il deployment della stessa configurazione più volte per creare ambienti di sviluppo, test e produzione riproducibili.
- Terraform ti consente di generare un piano di esecuzione che mostra cosa farà Terraform quando applichi la configurazione. In questo modo, eviterai sorprese quando modifichi l'infrastruttura tramite Terraform.
- Terraform ti consente di pacchettizzare e riutilizzare il codice comune sotto forma di moduli. I moduli presentano interfacce standard per la creazione di risorse cloud. Simplificano i progetti aumentando la leggibilità e consentono ai team di organizzare l'infrastruttura in blocchi leggibili. Inoltre, Google Cloud pubblica una serie di moduli di deployment con opinioni come blueprint ed esempi di inizio come soluzioni già pronte.
- Terraform registra lo stato attuale dell'infrastruttura e ti consente di gestirlo in modo efficace. Il file di stato Terraform tiene traccia di tutte le risorse di un deployment.
Utilizzo di Terraform
Terraform ha una sintassi dichiarativa e orientata alla configurazione che puoi utilizzare per creare l'infrastruttura che vuoi eseguire il provisioning. Utilizzando questa sintassi, definirai lo stato finale preferito per la tua infrastruttura in un file di configurazione Terraform. Poi, userai l'interfaccia a riga di comando Terraform per eseguire il provisioning dell'infrastruttura in base al file di configurazione.
I passaggi seguenti spiegano come funziona Terraform:
- Descrivi l'infrastruttura Google Cloud da eseguire il provisioning in un file di configurazione Terraform. Non è necessario scrivere codice che descriva come eseguire il provisioning di questa configurazione.
- Esegui il comando
terraform plan
, che valuta la configurazione e genera un piano di esecuzione. Puoi esaminare il piano e apportare le modifiche necessarie. - Poi esegui il comando
terraform apply
, che esegue le seguenti azioni:- Esegue il provisioning dell'infrastruttura in base al piano di esecuzione richiamando le API Google Cloud corrispondenti in background.
- Viene creato un file di stato Terraform, ovvero una mappatura in formato JSON delle risorse nel file di configurazione alle risorse nell'infrastruttura reale. Terraform utilizza questo file per conoscere lo stato più recente della tua infrastruttura e per determinare quando creare, aggiornare ed eliminare le risorse.
- Successivamente, quando esegui
terraform apply
, Terraform utilizza la mappatura nel file dello stato per confrontare l'infrastruttura esistente con il codice e apportare gli aggiornamenti necessari:- Se un oggetto della risorsa definito nel file di configurazione non esiste nel file di stato, Terraform lo crea.
- Se nel file dello stato esiste un oggetto della risorsa, ma la sua configurazione è diversa da quella del file di configurazione, Terraform aggiorna la risorsa in modo che corrisponda al file di configurazione.
- Se un oggetto della risorsa nel file dello stato corrisponde al tuo file di configurazione, Terraform lascia la risorsa invariata.
Fornitori Google Cloud
Esistono due provider che ti consentono di eseguire il provisioning e gestire l'infrastruttura di Google Cloud:
google
: utilizza questo provider per eseguire il provisioning e gestire le API Google Cloud.google-beta
: utilizza questo provider per eseguire il provisioning e gestire le API beta di Google Cloud.
Per istruzioni sull'utilizzo di questi provider, consulta la documentazione di riferimento sulla configurazione dei provider Google Cloud.
I fornitori google
e google-beta
vengono sviluppati utilizzando uno strumento chiamato
Magic Modules. Magic Modules consente ai collaboratori di apportare modifiche a un singolo codebase e di sviluppare contemporaneamente i provider google
e google-beta
.
Puoi contribuire ai provider Google Cloud utilizzando Magic Modules seguendo le istruzioni riportate nella guida per i contributi di Magic Modules.
Passaggi successivi
- Scopri come creare un server web di base su Compute Engine utilizzando Terraform
- Scopri come archiviare lo stato di Terraform in un bucket Cloud Storage
- Consulta i vari esempi di Terraform per Google Cloud
- Consulta i moduli e i blueprint Terraform per Google Cloud