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 attuare una configurazione Terraform specifica. Prima di creare un nuovo deployment o aggiornarne uno, puoi visualizzarne l'anteprima per verificare le risorse di cui è previsto il provisioning.
Un'anteprima esegue il comando Terraform plan. Questa pagina presuppone che tu abbia familiarità con Terraform. Per maggiori dettagli, consulta 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 avere un account di servizio con le autorizzazioni necessarie. Per i dettagli, consulta Configura il service account.
- Identifica la configurazione Terraform da visualizzare in anteprima. Assicurati che questa configurazione Terraform sia conforme ai vincoli, incluso il fatto che non contenga dati sensibili.
Visualizza 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.
Utilizza 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 quali risorse verranno sottoposte a provisioning o eliminate e quali non verranno modificate.
Identifica il deployment che vuoi aggiornare.
Assicurati che la configurazione Terraform sia caricata in un bucket Cloud Storage. Per maggiori dettagli, consulta Carica 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 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 che specifichi. Per informazioni dettagliate sui vincoli relativi all'identificatore dell'anteprima, consulta Nome anteprima.
- SERVICE_ACCOUNT è il nome del account di servizio che utilizzi per chiamare Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto del service account. 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 è 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 principale della configurazione Terraform, OBJECT_NAME è facoltativo.
INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: 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 visualizzare l'anteprima dell'aggiornamento del deployment. Per l'elenco delle versioni supportate, consulta la sezione Versione di Terraform supportata. Se rimuovi questo flag facoltativo, Infra Manager utilizza la versione di Terraform del deployment esistente o, per impostazione predefinita, l'ultima versione del Livello senza costi supportata (
1.5.7). Le anteprime non comportano addebiti per le versioni di Terraform a pagamento.- (Facoltativo) PROVIDER_SOURCE: determina quale provider Terraform per Google Cloud viene utilizzato dal deployment. Imposta su
SERVICE_MAINTAINEDper 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.
I campi del deployment, come la configurazione Terraform, le variabili e il account di servizio, vengono uniti automaticamente nell'anteprima, a meno che non specifichi nuovi valori nel comando di anteprima.
Ora che hai creato un'anteprima, puoi esportare e visualizzare i risultati per esaminare il piano per il deployment.
Visualizza 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 quali risorse verranno sottoposte a provisioning o eliminate e quali non verranno modificate.
- Se la configurazione di Terraform è archiviata in un repository Git privato e non l'hai ancora fatto, assicurati di aver eseguito la connessione al tuo host GitHub e al repository GitHub utilizzando Cloud Build per fornire a Infra Manager l'accesso 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 che specifichi. Per informazioni dettagliate sui vincoli relativi all'identificatore dell'anteprima, consulta Nome anteprima.
- SERVICE_ACCOUNT è il nome del account di servizio che utilizzi per chiamare Infra Manager.
- SERVICE_ACCOUNT_PROJECT_ID è l'ID progetto del service account. 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 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: 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 visualizzare l'anteprima dell'aggiornamento del deployment. Per l'elenco delle versioni supportate, consulta la sezione Versione di Terraform supportata. Se rimuovi questo flag facoltativo, Infra Manager utilizza la versione di Terraform del deployment esistente o, per impostazione predefinita, l'ultima versione del Livello senza costi supportata (
1.5.7). Le anteprime non comportano addebiti per le versioni di Terraform a pagamento.- (Facoltativo) PROVIDER_SOURCE: determina quale provider Terraform per Google Cloud viene utilizzato dal deployment. Imposta su
SERVICE_MAINTAINEDper 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.
I campi del deployment, come la configurazione Terraform, le variabili e il account di servizio, vengono uniti automaticamente nell'anteprima, a meno che non specifichi nuovi valori nel comando di anteprima.
Ora che hai creato un'anteprima, puoi esportare e visualizzare i risultati per esaminare il piano per il deployment.
Passaggi successivi
- Esporta e visualizza i risultati dell'anteprima
- Utilizza Infra Manager per eseguire il deployment delle risorse.
- Automatizza i deployment.
- Scopri di più su Terraform con Infra Manager.