Questa pagina descrive come utilizzare Infrastructure Manager per visualizzare l'anteprima del deployment delle risorse definite in una configurazione Terraform.
Un'anteprima descrive le azioni per attivare una configurazione Terraform specifica. Prima di creare un nuovo deployment o aggiornarne uno esistente, puoi visualizzare l'anteprima del deployment per verificare le risorse di cui è prevista la creazione.
Un'anteprima esegue il comando Terraform plan
. Questa pagina presuppone che tu abbia familiarità con Terraform. Per maggiori dettagli, vedi
Terraform e Infrastructure Manager.
Per creare un'anteprima, la configurazione Terraform deve essere compatibile con una delle versioni di Terraform supportate.
Prima di iniziare
- Abilita Infra Manager.
- Assicurati di disporre delle autorizzazioni IAM necessarie per creare anteprime:
roles/config.admin
. - Assicurati di disporre di un account di servizio con le autorizzazioni necessarie. Per maggiori dettagli, vedi Configurare il service account.
- Identifica la configurazione Terraform da visualizzare in anteprima. Assicurati che questa configurazione Terraform sia conforme ai vincoli, incluso il fatto che la configurazione non contenga dati sensibili.
Visualizzare l'anteprima di un aggiornamento di un deployment
La configurazione Terraform che utilizzi per aggiornare un deployment può trovarsi in un bucket di archiviazione o in un repository Git.
Utilizzi questa configurazione Terraform anche per visualizzare l'anteprima dell'aggiornamento.
Visualizza l'anteprima utilizzando una configurazione Terraform archiviata in un bucket Cloud Storage
Quando aggiorni un deployment, alcune delle risorse esistenti potrebbero non cambiare. L'anteprima di un aggiornamento mostra le risorse di cui è prevista la provisioning o l'eliminazione e quelle che non verranno modificate.
Identifica il deployment che vuoi aggiornare.
Assicurati che la configurazione Terraform sia caricata in un bucket Cloud Storage. Per ulteriori dettagli, consulta Caricare una configurazione in un bucket di archiviazione.
Un bucket di archiviazione ti consente di controllare l'accesso alla configurazione. Puoi anche eseguire il deployment di una configurazione Terraform archiviata in un repository Git o archiviata sulla tua macchina locale.
Per visualizzare l'anteprima dell'aggiornamento:
gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --gcs-source gs://BUCKET_NAME/OBJECT_NAME \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION --provider-source=SERVICE_MAINTAINED
Sostituisci:
- PROJECT_ID è l'ID progetto in cui viene eseguito Infrastructure Manager.
- LOCATION è la località in cui viene eseguito Infra Manager. Consulta Località di Infrastructure Manager per l'elenco delle località valide.
- PREVIEW_ID è l'identificatore dell'anteprima specificato. Per informazioni dettagliate sui vincoli dell'identificatore dell'anteprima, vedi Nome anteprima.
- SERVICE_ACCOUNT è il nome dell'account di servizio che utilizzi per chiamare Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto dell'account di servizio. In genere, si tratta dello stesso progetto in cui viene eseguito Infra Manager.
- DEPLOYMENT_ID è l'identificatore del deployment che vuoi aggiornare.
- BUCKET_NAME è il nome del bucket di archiviazione in cui è memorizzata la configurazione.
OBJECT_NAME è il nome 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.
INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: tutti i valori 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. Per l'elenco delle versioni supportate, vedi Versione di Terraform supportata. Se rimuovi questo flag facoltativo, viene utilizzata l'ultima versione supportata di Terraform.
- (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.
I campi del deployment, come la configurazione, le variabili e il account di servizio Terraform, vengono uniti automaticamente nell'anteprima, a meno che tu non specifichi nuovi valori nel comando di anteprima.
Ora che hai creato un'anteprima, puoi esportare e visualizzare i risultati per esaminare il piano di deployment.
Visualizzare l'anteprima utilizzando una configurazione Terraform archiviata in un repository Git
Quando aggiorni un deployment, alcune delle risorse esistenti potrebbero non cambiare. L'anteprima di un aggiornamento mostra le risorse di cui è prevista la provisioning o l'eliminazione e quelle che non verranno modificate.
- Se la configurazione Terraform è archiviata in un repository Git privato e non l'hai ancora fatto, assicurati di esserti connesso all'host GitHub e al repository GitHub utilizzando Cloud Build per fornire l'accesso a Infra Manager al tuo repository.
Per aggiornare un deployment:
gcloud infra-manager previews create projects/PROJECT_ID/locations/LOCATION/previews/PREVIEW_ID \ --service-account projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT \ --deployment=projects/PROJECT_ID/locations/LOCATION/deployments/DEPLOYMENT_ID \ --git-source-repo="GIT_REPO" \ --git-source-directory="DIRECTORY" \ --git-source-ref="REF" \ --input-values=INPUT_1_NAME=VALUE,INPUT_2_NAME=VALUE \ --tf-version-constraint=TERRAFORM_VERSION --provider-source=SERVICE_MAINTAINED
Sostituisci:
- PROJECT_ID è l'ID progetto in cui viene eseguito Infrastructure Manager.
- LOCATION è la località in cui viene eseguito Infra Manager. Consulta Località di Infrastructure Manager per l'elenco delle località valide.
- PREVIEW_ID è l'identificatore dell'anteprima specificato. Per informazioni dettagliate sui vincoli dell'identificatore dell'anteprima, vedi Nome anteprima.
- SERVICE_ACCOUNT è il nome dell'account di servizio che utilizzi per chiamare Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto dell'account di servizio. In genere, si tratta dello stesso progetto in cui viene eseguito Infra Manager.
- DEPLOYMENT_ID è l'identificatore del deployment che vuoi aggiornare.
- GIT_REPO: il repository Git.
- DIRECTORY: la directory contenente la configurazione di Terraform.
- REF: il riferimento Git della configurazione. Il riferimento è facoltativo. Se non specifichi il riferimento, viene utilizzato il ramo predefinito configurato del repository Git.
INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: tutti i valori 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. Per l'elenco delle versioni supportate, vedi Versione di Terraform supportata. Se rimuovi questo flag facoltativo, viene utilizzata l'ultima versione supportata di Terraform.
- (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.
I campi del deployment, come la configurazione, le variabili e il account di servizio Terraform, vengono uniti automaticamente nell'anteprima, a meno che tu non specifichi nuovi valori nel comando di anteprima.
Ora che hai creato un'anteprima, puoi esportare e visualizzare i risultati per esaminare il piano di deployment.
Passaggi successivi
- Esportare e visualizzare i risultati dell'anteprima
- Utilizza Infra Manager per eseguire il deployment delle risorse.
- Automatizzare i deployment.
- Scopri di più su Terraform con Infra Manager.