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 Visualizza 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 viene eseguito il deployment delle risorse. Consulta Controllo dell'accesso con IAM per l'elenco delle autorizzazioni.

Questa pagina presuppone che tu abbia familiarità con Terraform. Per maggiori 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 Configura 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 Visualizza 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 saperne di più, 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 l'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.

Concedi autorizzazioni specifiche per la configurazione

Per eseguire il deployment delle risorse Google Cloud 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.

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 Configura il service account.

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

Se esegui il deployment di una configurazione Terraform da un repository Git privato, devi connettere l'host e il repository Git 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, visualizzare l'anteprima ed eseguire il deployment delle configurazioni Terraform. Puoi utilizzare Infra Manager dalla console Google Cloud per eseguire il deployment dai bucket Cloud Storage e dai 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 dei modelli che puoi utilizzare con Infra Manager.

Seleziona la scheda con il workflow scelto per ulteriori informazioni 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. Per impostazione predefinita, è selezionata l'ultima versione del Livello senza costi supportata (1.5.7). La selezione di una versione a pagamento (come 1.16.5) comporta addebiti per il deployment e la gestione. Per saperne di più, consulta Versioni di Terraform supportate.
    • 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 di Terraform. Per saperne di più sull'utilizzo dei service account e di Infra Manager, consulta Configura il service account.
    • Origine della configurazione Terraform: fai clic sul pulsante di attivazione/disattivazione per selezionare Git o Cloud Storage come origine per la configurazione Terraform di cui vuoi eseguire il deployment.
      • Per Git, sostituisci:
        • Repository Git: fornisci un URL, un branch o un tag di un repository Git pubblico o privato.
          Se fornisci un repository Git privato, assicurati di aver connesso 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 è archiviata 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 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 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 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 Deployment, il deployment verrà aggiunto all'elenco insieme al relativo Stato.
  7. Per ulteriori dettagli sul deployment, selezionalo per andare alla pagina Dettagli deployment.
  8. Operazione riuscita. Hai eseguito il deployment della configurazione Terraform utilizzando Infra Manager.

gcloud CLI

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 maggiori dettagli, consulta Carica 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 in lettura per il bucket. Per maggiori dettagli, consulta Configura il service account.

    Se il bucket di archiviazione si trova nello stesso progetto di Infra Manager, l'autorizzazione in 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à di Infra Manager per l'elenco delle località valide.
  • DEPLOYMENT_ID: l'identificatore del deployment specificato. Per informazioni dettagliate 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 è archiviata 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 maggiori dettagli, consulta Utilizza gli oggetti con versioni.

    Se il bucket di archiviazione è il percorso root 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 di Terraform. Offre 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 sui file di configurazione Terraform verrà disabilitata. Questo è il valore predefinito. La convalida della quota si applica a risorse Google Cloud limitate. Per saperne di più, 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 che Infra Manager deve utilizzare per creare il deployment. Consulta la versione di Terraform supportata per l'elenco delle versioni supportate. Se rimuovi questo flag facoltativo, per impostazione predefinita viene utilizzata l'ultima versione di Terraform (1.5.7) supportata del Livello senza costi. Per utilizzare una versione a pagamento (ad esempio 1.16.5), devi specificarla esplicitamente.
  • (Facoltativo) ANNOTATION_KEY e ANNOTATION_VALUE rappresentano una coppia chiave-valore di testo in formato libero che può essere associata ai deployment 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 viene utilizzato dal deployment. Imposta su 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 Utilizza 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. Consulta Località di Infra Manager per l'elenco delle località valide.
  • DEPLOYMENT_ID: l'identificatore del deployment specificato. Per informazioni dettagliate 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 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: abilita la convalida della quota di computing per le risorse nei file di configurazione di Terraform. Offre 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 sui file di configurazione Terraform verrà disabilitata. Questo è il valore predefinito. La convalida della quota si applica a risorse Google Cloud limitate. Per saperne di più, 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 che Infra Manager deve utilizzare per creare il deployment. Consulta la versione di Terraform supportata per l'elenco delle versioni supportate. Se rimuovi questo flag facoltativo, per impostazione predefinita viene utilizzata l'ultima versione di Terraform (1.5.7) supportata del Livello senza costi. Per utilizzare una versione a pagamento (ad esempio 1.16.5), devi specificarla esplicitamente.
  • (Facoltativo) ANNOTATION_KEY e ANNOTATION_VALUE rappresentano una coppia chiave-valore di testo in formato libero che può essere associata ai deployment 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 viene utilizzato dal deployment. Imposta su 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 Utilizza 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 su Cloud Shell. Per maggiori dettagli, consulta Gestisci 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à di Infra Manager per l'elenco delle località valide.
  • DEPLOYMENT_ID: l'identificatore del deployment specificato. Per informazioni dettagliate 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 è archiviata la configurazione di Terraform. Se utilizzi Cloud Shell, questa è la directory in Cloud Shell in cui è archiviata 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 di Terraform. Offre 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 sui file di configurazione Terraform verrà disabilitata. Questo è il valore predefinito. La convalida della quota si applica a risorse Google Cloud limitate. Per saperne di più, 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 che Infra Manager deve utilizzare per creare il deployment. Consulta la versione di Terraform supportata per l'elenco delle versioni supportate. Se rimuovi questo flag facoltativo, per impostazione predefinita viene utilizzata l'ultima versione di Terraform (1.5.7) supportata del Livello senza costi. Per utilizzare una versione a pagamento (ad esempio 1.16.5), devi specificarla esplicitamente.
  • (Facoltativo) ANNOTATION_KEY e ANNOTATION_VALUE rappresentano una coppia chiave-valore di testo in formato libero che può essere associata ai deployment 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 viene utilizzato dal deployment. Imposta su 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 Utilizza il provider Terraform per Google Cloud.

Passaggi successivi