Esegui il provisioning delle risorse Cloud Build con Terraform

HashiCorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e di gestire l'infrastruttura cloud. Terraform fornisce plug-in noti con il nome 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 le risorse Google Cloud , tra cui Cloud Build.

Questa pagina illustra come utilizzare Terraform con Cloud Build, inclusa un'introduzione al funzionamento di Terraform e alcune risorse per iniziare a utilizzare Terraform con Google Cloud. Troverai anche link alla documentazione di riferimento di Terraform per Cloud Build, esempi di codice e guide per l'utilizzo di Terraform per il provisioning delle risorse Cloud Build.

Per istruzioni su come iniziare a utilizzare Terraform per Google Cloud, consulta Installa e configura Terraform o la guida rapida a Terraform per Google Cloud .

Come funziona Terraform

Terraform ha una sintassi dichiarativa e orientata alla configurazione che puoi utilizzare per descrivere l'infrastruttura di cui vuoi eseguire il provisioning nel tuo 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:

  1. Puoi descrivere l'infrastruttura di cui vuoi eseguire il provisioning in un file di configurazione Terraform. Non è necessario scrivere codice che descriva come eseguire il provisioning dell'infrastruttura. Terraform esegue il provisioning dell'infrastruttura per conto tuo.
  2. Puoi eseguire il comando terraform plan, che valuta la configurazione e genera un piano di esecuzione. Puoi anche rivedere il piano e apportare le modifiche necessarie.
  3. Puoi eseguire il comando terraform apply che:

    1. Esegue il provisioning dell'infrastruttura in base al piano di esecuzione richiamando le API Cloud Build corrispondenti in background.
    2. Crea un file di stato Terraform, ovvero un file JSON che mappa le risorse nel tuo file di configurazione alle risorse nell'infrastruttura reale. Terraform utilizza questo file per tenere traccia dello stato più recente dell'infrastruttura e per determinare quando creare, aggiornare ed eliminare le risorse.
    3. 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 della risorsa è definito nel file di configurazione, ma non esiste nel file dello 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.

Risorse Terraform per Cloud Build

Le risorse sono gli elementi fondamentali del linguaggio Terraform. Ogni blocco di risorse descrive uno o più oggetti di infrastruttura, come reti virtuali o istanze di computing.

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

Guide basate su Terraform per Cloud Build

La seguente tabella elenca guide illustrative e tutorial basati su Terraform per Cloud Build:

Guida Dettagli
Connettiti a un repository GitHub Questa guida spiega come connettere un repository GitHub a Cloud Build utilizzando Terraform.
Connettiti 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 utilizzando 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 Bitbucket Data Center Questa guida spiega come connettere un host Bitbucket Data Center a Cloud Build utilizzando Terraform.
Connettersi a un repository Bitbucket Data Center Questa guida spiega come connettere un repository Bitbucket Data Center a Cloud Build utilizzando Terraform.
Connettiti a un host Bitbucket Cloud Questa guida spiega come connettere un host Bitbucket Cloud a Cloud Build utilizzando Terraform.
Connettersi a un repository Bitbucket Cloud Questa guida spiega come connettere un repository Bitbucket Cloud a Cloud Build utilizzando Terraform.
Esegui il deployment in Compute Engine Questa guida spiega come eseguire deployment blu/verde senza tempi di inattività sui gruppi di istanze gestite (MIG) di Compute Engine utilizzando Cloud Build e Terraform.

Moduli e progetti base Terraform per Cloud Build

I moduli e i progetti base ti aiutano ad automatizzare il provisioning e la gestione delle risorse Google Cloud su larga scala. Un modulo è un insieme riusabile di file di configurazione di Terraform che crea un'astrazione logica delle risorse Terraform. Un progetto base è un pacchetto di moduli di cui è possibile eseguire il deployment e che sono riutilizzabili, nonché una policy che implementa e documenta una soluzione specifica.

La tabella seguente elenca i moduli e i progetti base relativi a Cloud Build:

Modulo o progetto base Dettagli
Pipeline CI/CD sicura Questo modulo consente ai clienti di eseguire rapidamente il deployment di una pipeline CI/CD sicura, implementando molte delle funzioni descritte in Spostamento a sinistra della sicurezza. Google Cloud
terraform-google-bootstrap Questo modulo consente di eseguire il bootstrap di un'organizzazione, creando tutte le risorse e le autorizzazioni necessarie per iniziare a utilizzare Cloud Foundation Toolkit (CFT). Google Cloud Per gli utenti che vogliono utilizzare Cloud Build e Cloud Source Repositories per il codice delle fondamenta, questo modulo contiene un sottomodulo che esegue il bootstrap di tutte le risorse richieste.

Passaggi successivi