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 provider cloud e altre API. Puoi Utilizzare il provider Terraform per Google Cloud per eseguire il provisioning e gestire di risorse Google Cloud, tra cui Cloud Build.
Come funziona Terraform
Terraform ha una sintassi dichiarativa e orientata alla configurazione, che puoi per descrivere l'infrastruttura di cui vuoi eseguire il provisioning progetto Google Cloud. Dopo aver creato questa configurazione in uno o più file di configurazione Terraform, puoi utilizzare Terraform CLI per applicarla alle risorse Cloud Build.
I passaggi seguenti spiegano come funziona Terraform:
- Descrivi l'infrastruttura da eseguire il provisioning in un file di configurazione Terraform. Non è necessario scrivere codice che descriva il provisioning dell'infrastruttura. Terraform esegue il provisioning dell'infrastruttura per te.
- Esegui il comando
terraform plan
, che valuta la tua configurazione genera un piano di esecuzione. Puoi rivedere il piano e apportare modifiche necessaria. -
Esegui il comando
terraform apply
, che esegue queste operazioni: azioni:- Esegue il provisioning dell'infrastruttura in base al tuo piano di esecuzione richiamando le API Cloud Build corrispondenti in background.
- Viene creato un file di stato Terraform, ovvero un file JSON che mappa le risorse nel file di configurazione alle risorse nell'infrastruttura reale. Terraform utilizza questo file per tenere un registro dello stato più recente dell'infrastruttura e per determinare quando creare, aggiornare ed eliminare le risorse.
-
Quando esegui
terraform apply
, Terraform utilizza la mappatura nel file di stato per confrontare l'infrastruttura esistente con il codice e apportare gli aggiornamenti necessari:- Se un oggetto risorsa è definito nel file di configurazione, ma non esiste nel viene creato da Terraform.
- 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 risorsa nel file di stato corrisponde al file di configurazione, Terraform lascia invariata la risorsa.
Guide basate su Terraform per Cloud Build
La tabella seguente elenca tutte le guide illustrative e i tutorial basati su Terraform per Cloud Build:
Guida | Dettagli |
---|---|
Connettiti a un repository GitHub | Questa guida spiega come collegare un repository GitHub a Cloud Build utilizzando Terraform. |
Connettersi a un host GitHub Enterprise | Questa guida spiega come connettere un host GitHub Enterprise a Cloud Build utilizzando Terraform. |
Connettersi a un repository GitHub Enterprise | Questa guida spiega come connettere un repository GitHub Enterprise a Cloud Build con Terraform. |
Connettersi a un host GitLab Enterprise Edition | Questa guida spiega come connettere un host GitLab Enterprise Edition a Cloud Build utilizzando Terraform. |
Connettersi a un repository GitLab Enterprise Edition | Questa guida spiega come connettere un repository GitLab Enterprise Edition a Cloud Build utilizzando Terraform. |
Connettersi a un host del data center Bitbucket | Questa guida spiega come connettere un host Bitbucket Data Center a Cloud Build utilizzando Terraform. |
Connettersi a un repository di data center Bitbucket | Questa guida spiega come collegare un repository Bitbucket Data Center a Cloud Build utilizzando Terraform. |
Connettersi a un host Bitbucket Cloud | Questa guida spiega come connettere un host Bitbucket Cloud a Cloud Build con Terraform. |
Connettersi a un repository Bitbucket Cloud | Questa guida spiega come connettere un repository Bitbucket Cloud a Cloud Build con Terraform. |
Esegui il deployment in Compute Engine | Questa guida spiega come eseguire zero tempi di inattività blu/verde nei gruppi di istanze gestite di Compute Engine, utilizzando Cloud Build e Terraform. |
Moduli e progetti Terraform per Cloud Build
I moduli e i progetti ti aiutano ad automatizzare il provisioning e la gestione delle risorse Google Cloud su larga scala. Un modulo è un insieme riutilizzabile di file di configurazione di Terraform che crea un'astrazione logica delle risorse Terraform. Un blueprint è un pacchetto di moduli di deployment e riutilizzabili e un criterio che implementa e documenta una soluzione specifica.
La tabella seguente elenca tutti i moduli e i blueprint relativi a Cloud Build:
Modulo o progetto | Dettagli |
---|---|
Pipeline CI/CD sicura | Questo modulo consente ai clienti Google Cloud di eseguire rapidamente il deployment pipeline CI/CD, che implementa molte delle funzioni descritte in Passaggio a sinistra per la sicurezza. |
terraform-google-bootstrap |
Questo modulo consente di avviare un'organizzazione Google Cloud, creando tutte le risorse e le autorizzazioni necessarie per iniziare a utilizzare Cloud Foundation Toolkit (CFT). Per gli utenti che vogliono utilizzare Cloud Build e Cloud Source Repositories per il codice di base, questo modulo contiene un sottomodulo che avvia tutte le risorse richieste. |
Risorse Terraform per Cloud Build
Le risorse sono gli elementi fondamentali del linguaggio Terraform. Ciascuna risorse descrivono uno o più oggetti dell'infrastruttura, come reti o istanze di calcolo.
La tabella seguente elenca le risorse Terraform disponibili per Cloud Build:
Servizio Cloud Build | Risorse Terraform | Origini dati |
---|---|---|
Cloud Build v1 | google_cloudbuild_trigger
|
|
Cloud Build v2 | google_cloudbuildv2_connection_iam_policy |
Passaggi successivi
- Esempi di codice Terraform per Cloud Build
- Documentazione di Terraform su Google Cloud
- Documentazione del provider Google Cloud in HashiCorp
- Infrastructure as Code per Google Cloud