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 in più località. L'account di servizio deve disporre 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 dimestichezza con Terraform. Per maggiori dettagli, consulta Terraform e Infra Manager.

Prima di iniziare

  1. Attiva Infra Manager.
  2. Assicurati di disporre delle autorizzazioni IAM necessarie per creare i deployment: roles/config.admin.
  3. Assicurati di disporre di un account di servizio con le autorizzazioni necessarie. Per maggiori dettagli, consulta Configurare l'account di servizio.
  4. Identifica la configurazione Terraform da eseguire. 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. Conferma la quota della tua organizzazione per i prodotti associati all'infrastruttura prevista. Potresti riscontrare errori di implementazione se l'infrastruttura prevista supera la quota della tua organizzazione per i prodotti utilizzati dal deployment. Per ulteriori informazioni, consulta quote e limiti.

Concedi le autorizzazioni specifiche per la configurazione

Per eseguire il deployment delle risorse Google Cloud specificate nella configurazione Terraform, il account di servizio utilizzato 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 su come assicurarti di avere accesso ai progetti necessari, consulta Configurare il service account.

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

Se esegui il deployment di una configurazione Terraform da un repository Git privato, devi collegare l'host e il repository Git 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 nella console Google Cloud per selezionare un'origine, visualizzare dettagli di implementazione, visualizzare l'anteprima e implementare le configurazioni Terraform. Puoi utilizzare Infra Manager dalla console Google Cloud per eseguire il deployment da bucket Cloud Storage, repository Git e directory locali.
  • 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 blueprint Terraform per Google Cloud per esempi e configurazioni di Terraform di modelli che puoi utilizzare con Infra Manager.

Seleziona la scheda con il flusso di lavoro 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 di Terraform supportata dal menu a discesa. L'elenco delle versioni di Terraform disponibili viene compilato automaticamente in base alla Regione selezionata.
    • Account di servizio: 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 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 per la configurazione Terraform che vuoi eseguire.
      • 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 contenente la configurazione di Terraform.
        • (Facoltativo) Riferimento Git: il riferimento Git della configurazione. Se non specifichi un riferimento, viene utilizzato il ramo configurato predefinito 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 di Terraform, inclusi quelli non definiti per impostazione predefinita. Se tutti i valori di input sono definiti per impostazione predefinita nella configurazione di 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 utilizzarli 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 allo stato.
  7. Per ulteriori dettagli sul deployment, selezionalo per accedere 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 di Terraform si trovi in un bucket Cloud Storage. Per ulteriori dettagli, vedi 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 l'account di servizio di Infra Manager disponga dell'autorizzazione di lettura per il bucket. Per maggiori dettagli, vedi Configurare l'account di servizio.

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

  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 \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
Sostituisci:
  • PROJECT_ID: l'ID progetto in cui viene eseguito Infra Manager.
  • LOCATION: la posizione 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 sulle limitazioni dell'identificatore di deployment, vedi Nome del deployment.
  • SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto dell'account di servizio. In genere si tratta dello stesso progetto in cui viene eseguito Infra Manager.
  • SERVICE_ACCOUNT: il nome dell'account di servizio utilizzato 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, vedi Utilizzare gli oggetti con versione.

    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 è attivata o applicata quando crei un deployment. I valori possibili includono:
    • ENABLED: abilita la convalida del calcolo delle quote 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 delle quote 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: qualsiasi valore di input nella configurazione di 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 per Infra Manager da utilizzare per creare il deployment. Consulta la versione di Terraform supportata per un elenco delle versioni supportate. Se rimuovi questo flag facoltativo, viene utilizzata la versione più recente di Terraform supportata.
  • (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 saperne di più sull'utilizzo e sui vincoli delle annotazioni e delle etichette, consulta Annotazioni ed etichette.

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 di 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 \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
Sostituisci:
  • PROJECT_ID: l'ID progetto in cui viene eseguito Infra Manager.
  • LOCATION: la posizione 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 sulle limitazioni dell'identificatore di deployment, vedi Nome del deployment.
  • SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto dell'account di servizio. In genere si tratta dello stesso progetto in cui viene eseguito Infra Manager.
  • SERVICE_ACCOUNT: il nome dell'account di servizio utilizzato 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 configurato predefinito del repository Git.
  • (Facoltativo) QUOTA_VALIDATION: il valore che determina se la convalida della quota per le risorse nei file di configurazione Terraform è attivata o applicata quando crei un deployment. I valori possibili includono:
    • ENABLED: abilita la convalida del calcolo delle quote 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 delle quote 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: qualsiasi valore di input nella configurazione di 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 per Infra Manager da utilizzare per creare il deployment. Consulta la versione di Terraform supportata per un elenco delle versioni supportate. Se rimuovi questo flag facoltativo, viene utilizzata la versione più recente di Terraform supportata.
  • (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 saperne di più sull'utilizzo e sui vincoli delle annotazioni e delle etichette, consulta Annotazioni ed etichette.

Interfaccia a riga di comando gcloud

Questa sezione descrive come utilizzare una configurazione Terraform memorizzata sul tuo computer locale.

  1. Se utilizzi Cloud Shell, devi caricare la configurazione su 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 \
            --annotation="ANNOTATION_KEY=ANNOTATION_VALUE"
            
Sostituisci:
  • PROJECT_ID: l'ID progetto in cui viene eseguito Infra Manager.
  • LOCATION: la posizione 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 sulle limitazioni dell'identificatore di deployment, vedi Nome del deployment.
  • SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto dell'account di servizio. In genere si tratta dello stesso progetto in cui viene eseguito Infra Manager.
  • SERVICE_ACCOUNT: il nome dell'account di servizio utilizzato per chiamare Infra Manager.
  • LOCAL_DIRECTORY: la directory locale in cui è memorizzata la configurazione di Terraform. Se utilizzi Cloud Shell, questa è la directory in cui è memorizzata la configurazione.
  • (Facoltativo) QUOTA_VALIDATION: il valore che determina se la convalida delle quote per le risorse nei file di configurazione Terraform è attivata o applicata quando crei un deployment. I valori possibili includono:
    • ENABLED: abilita la convalida del calcolo delle quote 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 delle quote 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: qualsiasi valore di input nella configurazione di 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 per Infra Manager da utilizzare per creare il deployment. Consulta la versione di Terraform supportata per un elenco delle versioni supportate. Se rimuovi questo flag facoltativo, viene utilizzata la versione più recente di Terraform supportata.
  • (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 saperne di più sull'utilizzo e sui vincoli delle annotazioni e delle etichette, consulta Annotazioni ed etichette.

Passaggi successivi