Esegui il deployment dell'infrastruttura utilizzando Infrastructure Manager

Questa pagina descrive come utilizzare Infrastructure Manager per eseguire il provisioning di un insieme di Google Cloud risorse definite in una configurazione Terraform.

Per visualizzare l'anteprima di un deployment senza eseguire il provisioning delle risorse, consulta Visualizzare l'anteprima di un deployment.

Puoi eseguire il deployment in più progetti e in più località. Il account di servizio deve disporre delle autorizzazioni per le risorse e i progetti in cui vengono eseguito il deployment delle risorse. Per l' elenco delle autorizzazioni, consulta Controllo dell'accesso con IAM.

Questa pagina presuppone che tu abbia familiarità con Terraform. Per i dettagli, consulta Terraform e Infra Manager.

Prima di iniziare

  1. Abilita Infra Manager.
  2. Assicurati di disporre delle autorizzazioni IAM necessarie per creare i deployment: roles/config.admin.
  3. Assicurati di avere un account di servizio con le autorizzazioni necessarie. Per i dettagli, consulta Configurare il service account.
  4. Identifica la configurazione Terraform di cui eseguire il deployment. Assicurati che questa configurazione Terraform sia conforme ai vincoli. In particolare, assicurati che la configurazione non contenga dati sensibili.
  5. Se vuoi visualizzare l'anteprima del deployment prima di configurare le risorse, consulta Visualizzare l'anteprima di un deployment.
  6. Verifica la quota della tua organizzazione per i prodotti associati all'infrastruttura prevista. Potresti riscontrare errori di deployment se l'infrastruttura prevista supera la quota della tua organizzazione per i prodotti utilizzati dal deployment. Per ulteriori informazioni, consulta Quote e limiti.

  7. Infra Manager utilizza Cloud Build per creare, aggiornare o visualizzare l'anteprima di un deployment. La creazione e l'aggiornamento dei deployment hanno un timeout di due ore, mentre la visualizzazione dell'anteprima di un deployment ha un timeout di un'ora.

    Se gestisci più risorse all'interno di una singola configurazione che supera questo limite, devi suddividere la configurazione in più deployment.

Concedere autorizzazioni specifiche per la configurazione

Per eseguire il deployment delle risorse specificate nella configurazione Terraform, il account di servizio che utilizzi per chiamare Infra Manager deve disporre delle autorizzazioni richieste specifiche per le risorse di cui stai eseguendo il deployment. Google Cloud

Queste autorizzazioni si aggiungono a quelle necessarie per utilizzare il servizio Infra Manager.

Per i dettagli sulla concessione delle autorizzazioni per le Google Cloud risorse e per assicurarti di avere accesso ai progetti necessari, consulta Configurare il service account.

Connetti il repository Git privato e l'host a Cloud Build

Se stai eseguendo il deployment di una configurazione Terraform da un repository Git privato, devi connettere l'host Git e il repository a Cloud Build.

Creare un deployment utilizzando una configurazione Terraform

Puoi utilizzare Infra Manager per eseguire il deployment di una configurazione Terraform in diversi modi:

  • (Consigliato) Utilizza Infra Manager in Google Cloud console per selezionare un'origine, visualizzare i dettagli del deployment, visualizzare l'anteprima ed eseguire il deployment delle configurazioni Terraform. Puoi utilizzare Infra Manager da Google Cloud console per eseguire il deployment da bucket Cloud Storage e repository Git.
  • Utilizza Infra Manager in Google Cloud CLI per eseguire il deployment delle configurazioni Terraform da:
    • Bucket Cloud Storage
    • Repository Git
    • Directory locali

Per esempi e configurazioni Terraform di modelli che puoi utilizzare con Infra Manager, consulta Moduli e blueprint di Terraform per Google Cloud.

Seleziona la scheda con il flusso di lavoro scelto per ulteriori informazioni sulla creazione di un deployment.

Console

Questa sezione descrive come eseguire il deployment di una configurazione Terraform utilizzando Infra Manager in Google Cloud console.

  1. Nella Google Cloud console, vai alla pagina Infra Manager.

    Vai a Infra Manager

  2. Fai clic su Crea per creare un nuovo deployment.
  3. Nella pagina Dettagli deployment, imposta i parametri iniziali per il deployment.

    Sostituisci:

    • ID deployment: nel campo ID deployment, inserisci un nome descrittivo per il deployment. Per ulteriori dettagli sui vincoli di denominazione, consulta la documentazione relativa al nome del deployment.
    • Regione: scegli una regione supportata dal menu a discesa.
    • Versione Terraform: scegli una versione Terraform supportata dal menu a discesa. L'elenco delle versioni Terraform disponibili viene compilato automaticamente in base alla Regione selezionata.
    • Service account: seleziona un account di servizio esistente o creane uno nuovo. Infra Manager convalida automaticamente le autorizzazioni in base all'infrastruttura descritta nella configurazione Terraform. Per ulteriori informazioni sull'utilizzo dei service account e di Infra Manager, consulta Configurare il service account.
    • Origine della configurazione Terraform: fai clic sul pulsante di attivazione/disattivazione per selezionare Git o Cloud Storage come origine della configurazione Terraform di cui vuoi eseguire il deployment.
      • Per Git, sostituisci:
        • Repository Git: fornisci un URL, un ramo o un tag di repository Git pubblico o privato.
          Se fornisci un repository Git privato, assicurati di aver collegato l'host e il repository a Cloud Build.
        • (Facoltativo) Directory Git: la directory all'interno del repository Git che contiene la configurazione Terraform.
        • (Facoltativo) Riferimento Git: il riferimento Git della configurazione. Se non specifichi un riferimento, viene utilizzato il ramo predefinito configurato del repository Git.
      • Per Bucket Cloud Storage, sostituisci:
        • Origine: il nome del bucket di archiviazione in cui è memorizzata la configurazione.

    Fai clic su Continua.

  4. Nella pagina Dettagli Terraform , utilizza i campi Chiave e Valore per compilare l'elenco dei valori di input nella configurazione Terraform.

    I valori possono essere qualsiasi valore di input nella configurazione Terraform, inclusi quelli non definiti per impostazione predefinita. Se tutti i valori di input sono definiti per impostazione predefinita nella configurazione Terraform, questi valori sono facoltativi. Fai clic su Continua.

  5. Nella pagina Dettagli avanzati, imposta i parametri facoltativi per il deployment.

    Sostituisci:

    • Etichette: le etichette e le annotazioni sono coppie chiave-valore di testo in formato libero. Puoi utilizzarle per allegare informazioni arbitrarie associate alla risorsa. Per ulteriori informazioni, consulta la documentazione relativa alle annotazioni.
    • Pool di worker: la risorsa del pool di worker in cui verrà eseguito il job Cloud Build. Il formato del pool di worker è projects/{project}/locations/{location}/workerPools/{workerPoolId}.
    • Bucket Cloud Storage degli artefatti: la posizione dei log e degli artefatti di Cloud Build in Cloud Storage. Il formato del percorso è gs://{bucket}/{folder}.
  6. Fai clic su Crea deployment per avviare il deployment della configurazione Terraform. Nella pagina Deployment, il deployment verrà aggiunto all'elenco insieme al relativo Stato.
  7. Per ulteriori dettagli sul deployment, selezionalo per passare alla pagina Dettagli deployment.
  8. Operazione riuscita. Hai eseguito il deployment della configurazione Terraform utilizzando Infra Manager.

gcloud CLI

Questa sezione descrive come eseguire il deployment di una configurazione Terraform archiviata in un bucket Cloud Storage. Un bucket di archiviazione ti consente di controllare l'accesso alla configurazione.

  1. Assicurati che la configurazione Terraform si trovi in un bucket Cloud Storage. Per ulteriori dettagli, consulta Caricare una configurazione in un bucket di archiviazione.
  2. Se il bucket di archiviazione si trova in un progetto diverso da quello in cui esegui Infra Manager, devi assicurarti che il account di servizio di Infra Manager disponga dell'autorizzazione di lettura per il bucket. Per ulteriori dettagli, consulta Configurare il service account.

    Se il bucket di archiviazione si trova nello stesso progetto di Infra Manager, l'autorizzazione di lettura per il bucket è già abilitata.

  3. Esegui il deployment della configurazione Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --gcs-source gs://BUCKET_NAME/OBJECT_NAME \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Sostituisci:
  • PROJECT_ID: l'ID progetto in cui viene eseguito Infra Manager.
  • LOCATION: la località in cui viene eseguito Infra Manager. Per l'elenco delle località valide, consulta Località di Infra Manager.
  • DEPLOYMENT_ID: l'identificatore del deployment che specifichi. Per i dettagli sui vincoli relativi all'identificatore del deployment, consulta Nome del deployment.
  • SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto del account di servizio. In genere, si tratta dello stesso progetto in cui viene eseguito Infra Manager.
  • SERVICE_ACCOUNT: il nome del account di servizio che utilizzi per chiamare Infra Manager.
  • BUCKET_NAME: il nome del bucket di archiviazione in cui è memorizzata la configurazione.
  • OBJECT_NAME: il nome dell'oggetto del file di configurazione. Questo oggetto può essere una directory o un file zip, ma non un file Terraform. Se utilizzi il controllo delle versioni degli oggetti, puoi anche specificare il numero di generazione dell'oggetto. Per ulteriori dettagli, consulta Utilizzare gli oggetti con controllo delle versioni.

    Se il bucket di archiviazione è il percorso principale della configurazione Terraform, OBJECT_NAME è facoltativo.

  • (Facoltativo) QUOTA_VALIDATION: il valore che determina se la convalida della quota per le risorse nei file di configurazione Terraform è abilitata o applicata quando crei un deployment. I valori possibili includono:
    • ENABLED: abilita la convalida della quota di computing per le risorse nei file di configurazione Terraform. Fornisce visibilità sulle risorse con quote insufficienti.
    • ENFORCED: applica la convalida della quota in modo che il deployment non vada a buon fine se non è disponibile una quota sufficiente per l'infrastruttura definita nel file di configurazione Terraform.

    Se QUOTA_VALIDATION non è definito, la convalida della quota nei file di configurazione Terraform verrà disabilitata. Questo è il valore predefinito. La convalida della quota si applica alle risorse limitate Google Cloud . Per ulteriori informazioni, consulta Quote e limiti.

  • INPUT_1_NAME e INPUT_2_NAME: qualsiasi valore di input nella configurazione Terraform, inclusi quelli non definiti per impostazione predefinita. Ad esempio, puoi specificare il progetto in cui esegui il deployment delle risorse come project_id=my-project.

    Se tutti i valori di input sono definiti per impostazione predefinita nella configurazione, questo flag è facoltativo.

  • (Facoltativo) TERRAFORM_VERSION: la versione di Terraform da utilizzare per Infra Manager per creare il deployment. Per l'elenco delle versioni supportate, consulta Versione Terraform supportata. Se rimuovi questo flag facoltativo, viene utilizzata l'ultima versione supportata di Terraform.
  • (Facoltativo) ANNOTATION_KEY e ANNOTATION_VALUE rappresentano una coppia chiave-valore di testo in formato libero che può essere allegata ai deployment di Infra Manager. Per ulteriori informazioni sull'utilizzo e sui vincoli di annotazioni ed etichette, consulta Annotazioni ed etichette.
  • (Facoltativo) PROVIDER_SOURCE: determina quale provider Terraform per Google Cloud il deployment utilizza. Imposta SERVICE_MAINTAINED per utilizzare il provider Terraform gestito da Infra Manager. Ometti questo campo per utilizzare il provider Terraform gestito da HashiCorp. Per saperne di più, consulta Utilizzare il provider Terraform per Google Cloud.

gcloud CLI

Questa sezione descrive come utilizzare una configurazione Terraform archiviata in un repository Git.

  1. Assicurati di aver installato Git.
  2. Se la configurazione Terraform è archiviata in un repository Git privato, assicurati che l' host e il repository Git siano connessi a Cloud Build.
  3. Esegui il deployment della configurazione Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --git-source-repo="GIT_REPO" \
            --git-source-directory="DIRECTORY" \
            --git-source-ref="REF" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Sostituisci:
  • PROJECT_ID: l'ID progetto in cui viene eseguito Infra Manager.
  • LOCATION: la località in cui viene eseguito Infra Manager. Per l'elenco delle località valide, consulta Località di Infra Manager.
  • DEPLOYMENT_ID: l'identificatore del deployment che specifichi. Per i dettagli sui vincoli relativi all'identificatore del deployment, consulta Nome del deployment.
  • SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto del account di servizio. In genere, si tratta dello stesso progetto in cui viene eseguito Infra Manager.
  • SERVICE_ACCOUNT: il nome del account di servizio che utilizzi per chiamare Infra Manager.
  • GIT_REPO: il repository Git.
  • DIRECTORY: la directory che contiene la configurazione Terraform.
  • (Facoltativo) REF: il riferimento Git della configurazione. Il riferimento è facoltativo. Se non specifichi il riferimento, viene utilizzato il ramo predefinito configurato del repository Git.
  • (Facoltativo) QUOTA_VALIDATION: il valore che determina se la convalida della quota per le risorse nei file di configurazione Terraform è abilitata o applicata quando crei un deployment. I valori possibili includono:
    • ENABLED: abilita la convalida della quota di computing per le risorse nei file di configurazione Terraform. Fornisce visibilità sulle risorse con quote insufficienti.
    • ENFORCED: applica la convalida della quota in modo che il deployment non vada a buon fine se non è disponibile una quota sufficiente per l'infrastruttura definita nel file di configurazione Terraform.

    Se QUOTA_VALIDATION non è definito, la convalida della quota nei file di configurazione Terraform verrà disabilitata. Questo è il valore predefinito. La convalida della quota si applica alle risorse limitate Google Cloud . Per ulteriori informazioni, consulta Quote e limiti.

  • INPUT_1_NAME e INPUT_2_NAME: qualsiasi valore di input nella configurazione Terraform, inclusi quelli non definiti per impostazione predefinita. Ad esempio, puoi specificare il progetto in cui esegui il deployment delle risorse come project_id=my-project.

    Se tutti i valori di input sono definiti per impostazione predefinita nella configurazione, questo flag è facoltativo.

  • (Facoltativo) TERRAFORM_VERSION: la versione di Terraform da utilizzare per Infra Manager per creare il deployment. Per l'elenco delle versioni supportate, consulta Versione Terraform supportata. Se rimuovi questo flag facoltativo, viene utilizzata l'ultima versione supportata di Terraform.
  • (Facoltativo) ANNOTATION_KEY e ANNOTATION_VALUE rappresentano una coppia chiave-valore di testo in formato libero che può essere allegata ai deployment di Infra Manager. Per ulteriori informazioni sull'utilizzo e sui vincoli di annotazioni ed etichette, consulta Annotazioni ed etichette.
  • (Facoltativo) PROVIDER_SOURCE: determina quale provider Terraform per Google Cloud il deployment utilizza. Imposta SERVICE_MAINTAINED per utilizzare il provider Terraform gestito da Infra Manager. Ometti questo campo per utilizzare il provider Terraform gestito da HashiCorp. Per saperne di più, consulta Utilizzare il provider Terraform per Google Cloud.

gcloud CLI

Questa sezione descrive come utilizzare una configurazione Terraform archiviata sulla tua macchina locale.

  1. Se utilizzi Cloud Shell, devi caricare la configurazione in Cloud Shell. Per i dettagli, consulta Gestire i file con Cloud Shell.
  2. Esegui il deployment della configurazione Terraform:

    gcloud infra-manager deployments apply projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \
            --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \
            --local-source="LOCAL_DIRECTORY" \
            --quota-validation=QUOTA_VALIDATION \
            --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \
            --tf-version-constraint=TERRAFORM_VERSION \
            --annotations="ANNOTATION_KEY=ANNOTATION_VALUE"
            --provider-source=SERVICE_MAINTAINED
            
Sostituisci:
  • PROJECT_ID: l'ID progetto in cui viene eseguito Infra Manager.
  • LOCATION: la località in cui viene eseguito Infra Manager. Per l'elenco delle località valide, consulta Località di Infra Manager.
  • DEPLOYMENT_ID: l'identificatore del deployment che specifichi. Per i dettagli sui vincoli relativi all'identificatore del deployment, consulta Nome del deployment.
  • SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto del account di servizio. In genere, si tratta dello stesso progetto in cui viene eseguito Infra Manager.
  • SERVICE_ACCOUNT: il nome del account di servizio che utilizzi per chiamare Infra Manager.
  • LOCAL_DIRECTORY: la directory locale in cui è memorizzata la configurazione Terraform. Se utilizzi Cloud Shell, questa è la directory in Cloud Shell in cui è memorizzata la configurazione.
  • (Facoltativo) QUOTA_VALIDATION: il valore che determina se la convalida della quota per le risorse nei file di configurazione Terraform è abilitata o applicata quando crei un deployment. I valori possibili includono:
    • ENABLED: abilita la convalida della quota di computing per le risorse nei file di configurazione Terraform. Fornisce visibilità sulle risorse con quote insufficienti.
    • ENFORCED: applica la convalida della quota in modo che il deployment non vada a buon fine se non è disponibile una quota sufficiente per l'infrastruttura definita nel file di configurazione Terraform.

    Se QUOTA_VALIDATION non è definito, la convalida della quota nei file di configurazione Terraform verrà disabilitata. Questo è il valore predefinito. La convalida della quota si applica alle risorse limitate Google Cloud . Per ulteriori informazioni, consulta Quote e limiti.

  • INPUT_1_NAME e INPUT_2_NAME: qualsiasi valore di input nella configurazione Terraform, inclusi quelli non definiti per impostazione predefinita. Ad esempio, puoi specificare il progetto in cui esegui il deployment delle risorse come project_id=my-project.

    Se tutti i valori di input sono definiti per impostazione predefinita nella configurazione, questo flag è facoltativo.

  • (Facoltativo) TERRAFORM_VERSION: la versione di Terraform da utilizzare per Infra Manager per creare il deployment. Per l'elenco delle versioni supportate, consulta Versione Terraform supportata. Se rimuovi questo flag facoltativo, viene utilizzata l'ultima versione supportata di Terraform.
  • (Facoltativo) ANNOTATION_KEY e ANNOTATION_VALUE rappresentano una coppia chiave-valore di testo in formato libero che può essere allegata ai deployment di Infra Manager. Per ulteriori informazioni sull'utilizzo e sui vincoli di annotazioni ed etichette, consulta Annotazioni ed etichette.
  • (Facoltativo) PROVIDER_SOURCE: determina quale provider Terraform per Google Cloud il deployment utilizza. Imposta SERVICE_MAINTAINED per utilizzare il provider Terraform gestito da Infra Manager. Ometti questo campo per utilizzare il provider Terraform gestito da HashiCorp. Per saperne di più, consulta Utilizzare il provider Terraform per Google Cloud.

Passaggi successivi