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 visualizzarne l'anteprima per verificare le risorse di cui è pianificato 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
- Attiva Infra Manager.
- Assicurati di disporre delle autorizzazioni IAM necessarie per creare le anteprime:
roles/config.admin
. - Assicurati di disporre di un account di servizio con le autorizzazioni necessarie. Per maggiori dettagli, consulta Configurare l'account di servizio.
- Identifica la configurazione Terraform di cui vuoi visualizzare l'anteprima. Assicurati che questa configurazione Terraform sia conforme ai vincoli, ad esempio che non contenga dati sensibili.
Visualizzare l'anteprima di un aggiornamento di un deployment
La configurazione Terraform utilizzata 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.
Anteprima utilizzando una configurazione Terraform archiviata in un bucket Cloud Storage
Quando aggiorni un deployment, alcune delle risorse esistenti potrebbero non essere modificate. L'anteprima di un aggiornamento mostra le risorse per le quali è pianificato il provisioning o l'eliminazione e quelle per le quali non è prevista alcuna modifica.
Identifica il deployment da 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 sul tuo computer 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
Sostituisci:
- PROJECT_ID è l'ID progetto in cui viene eseguito Infrastructure Manager.
- LOCATION è la posizione in cui viene eseguito Infra Manager. Consulta Località di Infrastructure Manager per l'elenco delle località valide.
- PREVIEW_ID è l'identificatore dell'anteprima specificato. Consulta Nome dell'anteprima per informazioni dettagliate sui vincoli dell'identificatore dell'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 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 Utilizzare gli oggetti con versione.
Se il bucket di archiviazione è il percorso principale della configurazione di Terraform,OBJECT_NAME è facoltativo.
INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: 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. Per un elenco delle versioni supportate, consulta la versione di Terraform supportata. Se rimuovi questo flag facoltativo, viene utilizzata la versione più recente di Terraform supportata.
I campi del deployment, come la configurazione, le variabili e l'account di servizio Terraform, vengono uniti automaticamente all'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 di implementazione.
Visualizza l'anteprima utilizzando una configurazione Terraform archiviata in un repository Git
Quando aggiorni un deployment, alcune delle risorse esistenti potrebbero non essere modificate. L'anteprima di un aggiornamento mostra le risorse per le quali è pianificato il provisioning o l'eliminazione e quelle per le quali non è prevista alcuna modifica.
- Se la configurazione di Terraform è archiviata in un repository Git privato e non lo hai ancora fatto, assicurati di aver eseguito la connessione all'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
Sostituisci:
- PROJECT_ID è l'ID progetto in cui viene eseguito Infrastructure Manager.
- LOCATION è la posizione in cui viene eseguito Infra Manager. Consulta Località di Infrastructure Manager per l'elenco delle località valide.
- PREVIEW_ID è l'identificatore dell'anteprima specificato. Consulta Nome dell'anteprima per informazioni dettagliate sui vincoli dell'identificatore dell'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 configurato predefinito del repository Git.
INPUT_1_NAME=VALUE e INPUT_2_NAME=VALUE: 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.
I campi del deployment, come la configurazione, le variabili e l'account di servizio Terraform, vengono uniti automaticamente all'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 di implementazione.
Passaggi successivi
- Esportare e visualizzare i risultati dell'anteprima
- Utilizza Infra Manager per implementare le risorse.
- Automatizza i deployment.
- Scopri di più su Terraform con Infra Manager.