Esegui il deployment della base utilizzando Terraform scaricato dalla console

Google Cloud La configurazione guidata aiuta gli amministratori a configurare una Google Cloud base utilizzando un flusso guidato ed eseguire il deployment direttamente dalla Google Cloud console o scaricare la configurazione come Terraform.

Questo documento ti aiuta a eseguire il deployment del file Terraform di configurazione guidata Google Cloud .

Prima di iniziare

Consulta le best practice per l'utilizzo di Terraform, che includono linee guida per lo sviluppo efficace con Terraform tra i membri del team e i flussi di lavoro.

Se hai già eseguito il deployment della configurazione di base facendo clic sul pulsante Esegui il deployment nella console e ora vuoi eseguire il deployment di una configurazione Terraform scaricata utilizzando la tua pipeline, devi:

  • Scaricare il file di stato Terraform generato dalla console.
  • Includere il file di stato scaricato nel processo della pipeline.

Per ulteriori informazioni, consulta Eseguire il deployment di Terraform scaricato dopo aver eseguito il deployment dalla console.

Eseguire il deployment di Terraform con Cloud Shell

Cloud Shell viene fornito con Terraform preinstallato e preautenticato, così puoi iniziare rapidamente.

  1. Dalla guida alla configurazione nella console, fai clic su Scarica come Terraform e salva la configurazione.
  2. Apri Cloud Shell.
  3. In Cloud Shell, crea una directory e vai al suo interno:

    mkdir cloud-foundation-example && cd cloud-foundation-example
    
  4. Carica la configurazione Terraform che hai scaricato nel passaggio 1.

    Dal menu Altro di Cloud Shell, seleziona Carica, quindi fai clic su Scegli file per selezionare la configurazione Terraform. Imposta la directory di destinazione sulla cartella che hai creato nel passaggio precedente, quindi fai clic su Carica.

  5. Assicurati di trovarti nella directory cloud-foundation-example.

  6. Crea un bucket Cloud Storage per archiviare lo stato remoto di Terraform. Uno stato remoto consente a Terraform di utilizzare gli object store come Cloud Storage per archiviare le informazioni sullo stato dell'infrastruttura gestita da Terraform. Questa configurazione offre vantaggi come la delega del team e il blocco dello stato.

    Per creare il bucket Cloud Storage, esegui il comando seguente:

    gcloud storage buckets create gs://tfstate-PROJECT_ID
    
  7. Definisci una configurazione del backend Terraform all'interno di un file backend.tf e sostituisci PROJECT_ID con l'ID progetto che hai utilizzato nel passaggio precedente. Per ulteriori dettagli, consulta Archiviare lo stato di Terraform in Cloud Storage.

    # backend.tf
    terraform {
          backend "gcs" {
            bucket  = "tfstate-PROJECT_ID"
            prefix  = "terraform/state"
          }
    }
    
  8. Esegui terraform init. Questa procedura inizializza la directory di lavoro contenente i file di configurazione Terraform e il backend.

  9. Esegui terraform plan per visualizzare le risorse create da Terraform. Output di esempio:

    ...
    Plan: 6 to add, 0 to change, 0 to destroy.
    Note: You didn't use the -out option to save this plan, so Terraform can't
    guarantee to take exactly these actions if you run "terraform apply" now.
    

  10. Applica la configurazione eseguendo terraform apply, che esegue il deployment delle risorse in Google Cloud. Quando ti viene richiesto, inserisci yes.

  11. Esplora la Google Cloud console per verificare che le risorse siano state eseguite sul tuo account o progetto.

Eseguire di nuovo il deployment di Terraform con Cloud Shell

Terraform archivia le informazioni sulle risorse di cui è stato eseguito il deployment all'interno del file di stato Terraform. Se hai seguito i passaggi precedenti per eseguire il deployment della configurazione, ti consigliamo vivamente di riutilizzare lo stesso backend per rilevare, eliminare e aggiornare automaticamente le risorse definite dalla nuova configurazione esportata.

  1. Dalla guida alla configurazione nella console, fai clic su Scarica come Terraform e salva la configurazione.
  2. Apri Cloud Shell.
  3. In Cloud Shell, crea una nuova directory e vai al suo interno:
    mkdir cloud-foundation-example-redeploy && cd cloud-foundation-example-redeploy
    
  4. Carica la configurazione Terraform che hai scaricato nel passaggio 1.

    Dal menu Altro di Cloud Shell, seleziona Carica, quindi fai clic su Scegli file per selezionare la configurazione Terraform. Imposta la directory di destinazione sulla cartella che hai creato nel passaggio precedente, quindi fai clic su Carica.

  5. Assicurati di trovarti nella directory cloud-foundation-example-redeploy.

  6. Assicurati che il bucket di backend Cloud Storage e il file di stato creati in precedenza esistano.

    gcloud storage ls gs://tfstate-PROJECT_ID/terraform/state/
    
    Output di esempio:
    gs://tfstate-PROJECT_ID/terraform/state/default.tfstate
    

  7. Definisci una configurazione del backend Terraform all'interno di un file backend.tf riutilizzando lo stesso bucket e lo stesso prefisso.

    # backend.tf
    terraform {
          backend "gcs" {
            bucket  = "tfstate-PROJECT_ID"
            prefix  = "terraform/state"
          }
    }
    
  8. Esegui terraform init. Questa procedura inizializza la directory di lavoro contenente i file di configurazione Terraform e il backend.

  9. Esegui terraform plan per visualizzare le risorse create, modificate o eliminate da Terraform. Output di esempio:

    ...
    Plan: 2 to add, 3 to change, 4 to destroy.
    Note: You didn't use the -out option to save this plan, so Terraform can't
    guarantee to take exactly these actions if you run "terraform apply" now.
    

  10. Applica la configurazione eseguendo terraform apply, che esegue il deployment delle risorse in Google Cloud. Quando ti viene richiesto, inserisci yes.

  11. Esplora la Google Cloud console per verificare che le risorse siano state eseguite sul tuo account o progetto.

Eseguire il deployment di Terraform scaricato dopo aver eseguito il deployment dalla console

Se hai già eseguito il deployment della configurazione di base utilizzando il pulsante Esegui il deployment nella console, è stato generato un file di stato Terraform. Se ora vuoi scaricare la configurazione Terraform per eseguirne il deployment utilizzando la tua pipeline, devi includere il file di stato Terraform generato durante il deployment della console.

Per scaricare e utilizzare il file di stato:

  1. Per scaricare il file di stato Terraform, completa le seguenti procedure in Gestire il file di stato Terraform:

    1. Blocca il deployment.
    2. Scarica il file di stato.
    3. Sblocca il deployment.
  2. Per spostare il file di stato scaricato in un bucket Cloud Storage, consulta Archiviare lo stato di Terraform in un bucket Cloud Storage.

  3. Per rieseguire il deployment della configurazione Terraform, consulta Rieseguire il deployment di Terraform con Cloud Shell.

Risoluzione dei problemi dei deployment di Terraform

Questa sezione descrive come risolvere i problemi che potresti riscontrare durante il deployment di Terraform.

Eseguire il deployment di Terraform con risorse esistenti

Se la configurazione Terraform scaricata tenta di creare risorse che esistono già, Terraform esce con un 409 codice di errore. Per risolvere questi errori, puoi eliminare la risorsa utilizzando la Google Cloud console o gcloud CLI, quindi applicare nuovamente la configurazione Terraform. In alternativa, se queste risorse sono fondamentali e non possono essere eliminate, puoi importarle nello stato di Terraform.

Gestire l'infrastruttura come codice con Terraform, Cloud Build e GitOps

Ti consigliamo di seguire questo tutorial per istruzioni complete. Questa opzione è destinata agli amministratori e agli operatori della piattaforma che cercano una strategia per apportare modifiche all'infrastruttura in modo prevedibile e ripetuto. La guida presuppone che tu abbia familiarità con Google Cloud, Linux e GitHub. I passaggi di alto livello di questa opzione sono i seguenti:

  1. Configura il repository GitHub.
  2. Configura Terraform per archiviare lo stato in un bucket Cloud Storage.
  3. Concedi le autorizzazioni al account di servizio Cloud Build.
  4. Collega Cloud Build al repository GitHub.
  5. Modifica la configurazione dell'ambiente in un ramo di funzionalità.
  6. Promuovi le modifiche all'ambiente di sviluppo.
  7. Promuovi le modifiche all'ambiente di produzione.