Esegui il deployment dell'infrastruttura utilizzando Infrastructure Manager

Questa pagina descrive come utilizzare Infrastructure Manager per eseguire il provisioning di un insieme di risorseGoogle Cloud 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 più località. Il account di servizio ha bisogno delle autorizzazioni per le risorse e i progetti in cui vengono implementate le risorse. Per l'elenco delle autorizzazioni, consulta Controllo dell'accesso con IAM.

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

Prima di iniziare

  1. Abilita Infra Manager.
  2. Assicurati di disporre delle autorizzazioni IAM necessarie per creare deployment: roles/config.admin.
  3. Assicurati di disporre di un account di servizio con le autorizzazioni necessarie. Per maggiori dettagli, vedi Configurare il service account.
  4. Identifica la configurazione Terraform da eseguire il deployment. Assicurati che questa configurazione Terraform rispetti i 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. Conferma 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.

Concedi 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 informazioni dettagliate sulla concessione delle autorizzazioni per le risorse Google Cloud 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.

Crea 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 nella console Google Cloud per selezionare un'origine, visualizzare i dettagli del deployment, l'anteprima e implementare le configurazioni Terraform. Puoi utilizzare Infra Manager dalla 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

Consulta Moduli e progetti base Terraform per Google Cloud per esempi e configurazioni Terraform modello che puoi utilizzare con Infra Manager.

Seleziona la scheda con il workflow che hai scelto per saperne di più sulla creazione di un deployment.

Console

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

  1. Nella console Google Cloud , 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 di 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 che vuoi eseguire il deployment.
      • Per Git, sostituisci:
        • Repository Git: fornisci un URL, un ramo o un tag del 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 di Terraform, utilizza i campi Chiave e Valore per compilare l'elenco dei valori di input nella configurazione di 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 la distribuzione.

    Sostituisci:

    • Etichette: le etichette e le annotazioni sono coppie chiave-valore di testo in formato libero. Puoi utilizzarli per allegare informazioni arbitrarie associate alla risorsa. Per saperne di più, 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 Implementazioni, la tua implementazione verrà aggiunta 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.

Interfaccia a riga di comando gcloud

Questa sezione descrive 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 maggiori 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. Consulta Località Infra Manager per l'elenco delle località valide.
  • DEPLOYMENT_ID: l'identificatore del deployment specificato. Per informazioni dettagliate sui vincoli dell'identificatore di deployment, vedi 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 specificare anche il numero di generazione dell'oggetto. Per maggiori dettagli, vedi Utilizzare gli oggetti con controllo delle versioni.

    Se il bucket di archiviazione è il percorso principale della configurazione di 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: attiva la convalida della quota di calcolo 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 di Terraform verrà disattivata. Questo è il valore predefinito. La convalida della quota si applica alle risorse Google Cloud limitate. Per ulteriori informazioni, consulta Quote e limiti.

  • INPUT_1_NAME e INPUT_2_NAME: tutti i valori di input nella configurazione Terraform, inclusi quelli non definiti per impostazione predefinita. Ad esempio, potresti 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 che Infra Manager deve utilizzare per creare il deployment. Consulta l'articolo Versione di Terraform supportata per l'elenco delle versioni supportate. 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 alle implementazioni di Infra Manager. Per saperne di più 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.

Interfaccia a riga di comando gcloud

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 Git e il repository 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. Consulta Località Infra Manager per l'elenco delle località valide.
  • DEPLOYMENT_ID: l'identificatore del deployment specificato. Per informazioni dettagliate sui vincoli dell'identificatore di deployment, vedi 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 contenente la configurazione di 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: attiva la convalida della quota di calcolo 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 di Terraform verrà disattivata. Questo è il valore predefinito. La convalida della quota si applica alle risorse Google Cloud limitate. Per ulteriori informazioni, consulta Quote e limiti.

  • INPUT_1_NAME e INPUT_2_NAME: tutti i valori di input nella configurazione Terraform, inclusi quelli non definiti per impostazione predefinita. Ad esempio, potresti 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 che Infra Manager deve utilizzare per creare il deployment. Consulta l'articolo Versione di Terraform supportata per l'elenco delle versioni supportate. 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 alle implementazioni di Infra Manager. Per saperne di più 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.

Interfaccia a riga di comando gcloud

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

  1. Se utilizzi Cloud Shell, devi caricare la configurazione in Cloud Shell. Per maggiori dettagli, vedi 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. Consulta Località Infra Manager per l'elenco delle località valide.
  • DEPLOYMENT_ID: l'identificatore del deployment specificato. Per informazioni dettagliate sui vincoli dell'identificatore di deployment, vedi 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 di 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: attiva la convalida della quota di calcolo 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 di Terraform verrà disattivata. Questo è il valore predefinito. La convalida della quota si applica alle risorse Google Cloud limitate. Per ulteriori informazioni, consulta Quote e limiti.

  • INPUT_1_NAME e INPUT_2_NAME: tutti i valori di input nella configurazione Terraform, inclusi quelli non definiti per impostazione predefinita. Ad esempio, potresti 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 che Infra Manager deve utilizzare per creare il deployment. Consulta l'articolo Versione di Terraform supportata per l'elenco delle versioni supportate. 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 alle implementazioni di Infra Manager. Per saperne di più 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