Terraform per Hashicorp è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e gestire l'infrastruttura cloud. Terraform fornisce plug-in denominati provider che consentono di interagire con provider cloud e altre API. Puoi utilizzare il provider Terraform per Google Cloud (provider Google Cloud) per eseguire il provisioning e gestire l'infrastruttura di Google Cloud.
Vantaggi dell'utilizzo di Terraform
Questa sezione illustra alcuni dei vantaggi dell'utilizzo di Terraform per il provisioning e la gestione dell'infrastruttura Google Cloud:
- Terraform è lo strumento più utilizzato per 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 consente di specificare lo stato finale preferito per la tua infrastruttura. Puoi quindi eseguire il deployment della stessa configurazione più volte per creare ambienti di sviluppo, test e produzione riproducibili.
- Terraform consente di generare un piano di esecuzione che mostra che cosa farà Terraform quando applichi la configurazione. Questo consente di evitare sorprese quando modifichi l'infrastruttura tramite Terraform.
- Terraform consente di pacchettizzare e riutilizzare il codice comune sotto forma di moduli. I moduli presentano interfacce standard per la creazione di risorse cloud. Semplificano 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 cui è possibile eseguire il deployment come progetti e alcuni esempi iniziali come soluzioni di avvio rapido.
- 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 in un deployment.
Utilizzo di Terraform
Terraform ha una sintassi dichiarativa e orientata alla configurazione, che puoi utilizzare per creare l'infrastruttura di cui vuoi eseguire il provisioning. Utilizzando questa sintassi, definirai lo stato finale preferito per la tua infrastruttura in un file di configurazione Terraform. Utilizzerai quindi 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 di cui vuoi eseguire il provisioning in un file di configurazione Terraform. Non è necessario creare il 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 rivedere il piano e apportare modifiche in base alle tue esigenze. - Quindi, 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 del file di configurazione alle risorse nell'infrastruttura reale. Terraform utilizza questo file per conoscere lo stato più recente dell'infrastruttura e per determinare quando creare, aggiornare ed eliminare le risorse.
- Successivamente, quando esegui
terraform apply
, Terraform utilizza la mappatura nel file di stato per confrontare l'infrastruttura esistente con il codice e apportare gli aggiornamenti in base alle necessità:- Se un oggetto risorsa definito nel file di configurazione non esiste nel file di stato, Terraform lo crea.
- Se nel file di stato esiste un oggetto risorsa, ma la configurazione è diversa rispetto a quella del file di configurazione, Terraform aggiorna la risorsa in modo che corrisponda al file di configurazione.
- Se un oggetto risorsa nel file di stato corrisponde al file di configurazione, Terraform lascia la risorsa invariata.
Provider 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 il riferimento sulla configurazione del provider Google Cloud.
I provider google
e google-beta
sono sviluppati utilizzando uno strumento chiamato
Moduli magici. Magic Modules consente ai collaboratori di apportare modifiche su un
singolo codebase e sviluppare contemporaneamente sia i provider google
che google-beta
.
Puoi fornire il tuo contributo ai provider Google Cloud utilizzando Moduli magici seguendo le istruzioni riportate nella guida per i Moduli magici.
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
- Esamina i vari esempi di Terraform per Google Cloud
- Esamina i moduli e progetti Terraform per Google Cloud