Esegui il provisioning delle risorse Cloud Build con Terraform

HashiCorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e la gestione dell'infrastruttura cloud. Terraform fornisce plug-in chiamati provider che consentono di interagire con provider cloud e altre API. Puoi utilizzare il provider Terraform per Google Cloud per eseguire il provisioning e gestire le risorse Google Cloud, incluso Cloud Build.

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 progetto Google Cloud. Dopo aver creato questa configurazione in uno o più file di configurazione Terraform, puoi utilizzare l'interfaccia a riga di comando Terraform per applicare questa configurazione alle tue risorse Cloud Build.

I passaggi seguenti spiegano come funziona Terraform:

  1. Descrivi 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 te.
  2. Esegui il comando terraform plan, che valuta la configurazione e genera un piano di esecuzione. Puoi rivedere il piano e apportare modifiche, se necessario.
  3. Esegui il comando terraform apply, che esegue le seguenti azioni:
    1. Esegue il provisioning dell'infrastruttura in base al piano di esecuzione richiamando le API Cloud Build corrispondenti in background.
    2. 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 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 aggiornamenti, se necessario:
      • Se un oggetto risorsa è definito nel file di configurazione, ma non esiste nel file di stato, Terraform lo crea.
      • Se un oggetto risorsa esiste nel file di stato, ma ha una 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 connettere un repository GitHub a Cloud Build utilizzando Terraform.
    Eseguire il deployment in Compute Engine Questa guida spiega come eseguire deployment blu/verde senza tempi di inattività sui gruppi di istanze gestite di Compute Engine (MIG) utilizzando Cloud Build e Terraform.

    Moduli e progetti Terraform per Cloud Build

    I moduli e i progetti consentono di automatizzare il provisioning e la gestione delle risorse Google Cloud su larga scala. Un modulo è un set riutilizzabile di file di configurazione Terraform che crea un'astrazione logica delle risorse Terraform. Un progetto è un pacchetto di moduli di cui è possibile eseguire il deployment e riutilizzabili, nonché un criterio che implementa e documenta una soluzione specifica.

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

    Modulo o progetto Dettagli
    Pipeline CI/CD protetta Questo modulo consente ai clienti di Google Cloud di eseguire rapidamente il deployment di una pipeline CI/CD sicura, implementando molte delle funzioni descritte in Passare alla sicurezza sempre attiva.
    terraform-google-bootstrap Questo modulo consente di eseguire il bootstrap di 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 esegue il bootstrap di tutte le risorse richieste.

    Risorse Terraform per Cloud Build

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

    La seguente tabella 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