Esegui il deployment degli elementi di base utilizzando Terraform scaricato dalla console

La guida alla configurazione della piattaforma Google Cloud nella console Google Cloud consente agli amministratori aziendali di configurare una piattaforma Google Cloud di livello enterprise utilizzando un'interfaccia guidata e di eseguirne il deployment direttamente dalla console Google Cloud o di scaricarla come Terraform.

Gli amministratori possono configurare un'entità dell'organizzazione, utenti e gruppi, collegare o impostare un account di fatturazione e configurare la gerarchia delle risorse (cartelle e progetti), i criteri IAM, il networking iniziale e il logging e il monitoraggio centralizzati.

Quando i clienti scaricano la propria configurazione come Terraform, la console genera un file Terraform per il deployment successivo. Questo tutorial fornisce istruzioni per eseguire il deployment del file Terraform scaricato e prende in considerazione eventuali risorse dell'infrastruttura di cui è stato eseguito il deployment in precedenza.

Prima di iniziare

Consulta le best practice per l'utilizzo di Terraform, che includono linee guida per uno sviluppo efficace con Terraform per 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:

  • Scarica il file di stato Terraform generato dalla console.
  • Includi il file di stato scaricato nel processo della pipeline.

Per maggiori informazioni, consulta Eseguire il deployment di Terraform scaricato dopo il deployment dalla console.

Esegui il deployment di Terraform con Cloud Shell

Terraform è preinstallato e pre-autenticato in Cloud Shell, per consentirti di iniziare rapidamente.

  1. Nella guida alla configurazione nella console, fai clic su Download as Terraform (Scarica come Terraform) e salva la configurazione.
  2. Apri Cloud Shell.
  3. In Cloud Shell, crea una directory e aprila:

    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 di Terraform. Imposta la directory di destinazione sulla cartella creata nel passaggio precedente, quindi fai clic su Carica.

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

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

    Per creare il bucket Cloud Storage, esegui questo comando:

    gsutil mb gs://tf-state-PROJECT_ID
    
  7. Definisci una configurazione del backend Terraform all'interno di un file backend.tf e sostituisci PROJECT_ID in modo che corrisponda all'ID progetto utilizzato nel passaggio precedente. Per maggiori dettagli, consulta la pagina relativa all'archiviazione dello stato di Terraform in Cloud Storage.

    # backend.tf
    terraform {
          backend "gcs" {
            bucket  = "tf-state-PROJECT_ID"
            prefix  = "terraform/state"
          }
    }
    
  8. Esegui terraform init. Questo processo inizializza la directory di lavoro che contiene 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 richiesto, inserisci yes.

  11. Esplora la console Google Cloud per verificare che sia stato eseguito il deployment delle risorse nel tuo account o progetto.

Esegui 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. Nella 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 aprila:
    mkdir cloud-foundation-example-redeploy && cd cloud-foundation-example-redeploy
    
  4. Carica la configurazione Terraform che hai scaricato nel passaggio 1.

    Nel 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 creata nel passaggio precedente e fai clic su Carica.

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

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

    gsutil ls gs://tf-state-PROJECT_ID/terraform/state/
    
    Output di esempio:
    gs://tf-state-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  = "tf-state-PROJECT_ID"
            prefix  = "terraform/state"
          }
    }
    
  8. Esegui terraform init. Questo processo inizializza la directory di lavoro che contiene i file di configurazione Terraform e il backend.

  9. Esegui terraform plan per vedere le risorse che Terraform crea, modifica o elimina. 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 richiesto, inserisci yes.

  11. Esplora la console Google Cloud per verificare che sia stato eseguito il deployment delle risorse nel tuo account o progetto.

Esegui il deployment di Terraform scaricato dopo 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 di cui eseguire 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 procedure seguenti 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 che hai scaricato in un bucket Cloud Storage, vedi Archiviare lo stato di Terraform in un bucket Cloud Storage.

  3. Per eseguire nuovamente il deployment della configurazione Terraform, vedi Eseguire nuovamente il deployment di Terraform con Cloud Shell.

Risoluzione dei problemi dei deployment Terraform

Esegui il deployment di Terraform con risorse esistenti

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

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

Ti consigliamo di seguire questo tutorial per avere istruzioni complete. Questa opzione è rivolta agli amministratori e agli operatori di piattaforma che cercano una strategia per apportare modifiche all'infrastruttura in modo prevedibile e ripetuto. La guida presuppone che tu conosca Google Cloud, Linux e GitHub. I passaggi generali 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 tuo account di servizio Cloud Build.
  4. Connetti Cloud Build al tuo repository GitHub.
  5. Modifica la configurazione dell'ambiente in un ramo di funzionalità.
  6. Promuovere le modifiche all'ambiente di sviluppo.
  7. Promuovere le modifiche all'ambiente di produzione.