Guida rapida: crea un'istanza VM utilizzando Terraform
In questa guida rapida imparerai a utilizzare Terraform per creare un'istanza di macchina virtuale (VM) Compute Engine e a connetterti a questa istanza VM.
Hashicorp Terraform è uno strumento Infrastructure as Code (IaC) che consente di eseguire il provisioning e di gestire l'infrastruttura cloud. Il Google Cloud _provider Terraform per_ (Google Cloud provider) consente di eseguire il provisioning e la gestione dell' Google Cloud infrastruttura.
Prima di iniziare
Per utilizzare un terminale online con gcloud CLI e Terraform già configurati, attiva Cloud Shell:
Nella parte inferiore di questa pagina viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. L'inizializzazione della sessione può richiedere alcuni secondi.
-
Crea o seleziona un Google Cloud progetto.
Ruoli richiesti per selezionare o creare un progetto
- Seleziona un progetto: la selezione di un progetto non richiede un ruolo IAM specifico: puoi selezionare qualsiasi progetto su cui ti è stato concesso un ruolo.
-
Crea un progetto: per creare un progetto, devi disporre del ruolo Autore progetto
(
roles/resourcemanager.projectCreator), che contiene l'resourcemanager.projects.createautorizzazione. Scopri come concedere i ruoli.
-
Crea un Google Cloud progetto:
gcloud projects create PROJECT_ID
Sostituisci
PROJECT_IDcon un nome per il Google Cloud progetto che stai creando. -
Seleziona il Google Cloud progetto che hai creato:
gcloud config set project PROJECT_ID
Sostituisci
PROJECT_IDcon il nome del Google Cloud progetto.
-
Verifica che la fatturazione sia abilitata per il tuo Google Cloud progetto.
-
Abilita l'API Compute Engine:
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene l'serviceusage.services.enableautorizzazione. Scopri come concedere i ruoli.gcloud services enable compute.googleapis.com
-
Concedi i ruoli al tuo account utente. Esegui il seguente comando una volta per ciascuno dei seguenti ruoli IAM:
roles/compute.instanceAdmin.v1gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Sostituisci quanto segue:
PROJECT_ID: il tuo ID progetto.USER_IDENTIFIER: l'identificatore del tuo account utente. account. Per esempi, consulta Rappresenta gli utenti del pool di forza lavoro nelle policy IAM.ROLE: il ruolo IAM che concedi al tuo account utente.
Prepara l'ambiente
Clona il repository GitHub contenente gli esempi di Terraform:
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branchVai alla directory che contiene l'esempio della guida rapida:
cd terraform-docs-samples/compute/quickstart/create_vm
Esamina i file Terraform
Esamina il file main.tf. Questo file definisce le Google Cloud
risorse che vuoi creare.
cat main.tf
L'output è simile al seguente
Questo file descrive la
google_compute_instance risorsa, che è la risorsa Terraform per la
istanza VM Compute Engine. google_compute_instance è configurata per avere le seguenti proprietà:
nameè impostato sumy-vm.machine_typeè impostato sun1-standard-1.zoneè impostato suus-central1-a.boot_diskimposta il disco di avvio per l'istanza.network_interfaceè impostato per utilizzare la rete predefinita nel tuo Google Cloud progetto.
Crea l'istanza VM Compute Engine
In Cloud Shell, esegui questo comando per verificare che Terraform sia disponibile:
terraformL'output dovrebbe essere simile al seguente:
Usage: terraform [global options] <subcommand> [args] The available commands for execution are listed below. The primary workflow commands are given first, followed by less common or more advanced commands. Main commands: init Prepare your working directory for other commands validate Check whether the configuration is valid plan Show changes required by the current configuration apply Create or update infrastructure destroy Destroy previously-created infrastructureInizializza Terraform eseguendo il seguente comando. Questo comando prepara il workspace in modo che Terraform possa applicare la configurazione.
terraform initL'output dovrebbe essere simile al seguente:
Initializing the backend... Initializing provider plugins... - Finding latest version of hashicorp/google... - Installing hashicorp/google v5.35.0... - Installed hashicorp/google v5.35.0 (signed by HashiCorp) Terraform has created a lock file .terraform.lock.hcl to record the provider selections it made above. Include this file in your version control repository so that Terraform can guarantee to make the same selections by default when you run "terraform init" in the future. Terraform has been successfully initialized!Convalida la configurazione Terraform eseguendo il seguente comando. Questo comando esegue le seguenti azioni:
- Verifica che la sintassi di
main.tfsia corretta. - Mostra un'anteprima delle risorse che verranno create.
terraform planL'output dovrebbe essere simile al seguente:
Plan: 1 to add, 0 to change, 0 to destroy. Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.- Verifica che la sintassi di
Applica la configurazione per eseguire il provisioning delle risorse descritte nel file
main.tf:terraform applyQuando richiesto, inserisci
yes.Terraform chiama Google Cloud le API per creare l'istanza VM definita in nel file
main.tf.L'output dovrebbe essere simile al seguente:
Apply complete! Resources: 1 added, 0 changed, 0 destroyed
Connettiti all'istanza VM
Connettiti all'istanza VM che hai appena creato eseguendo il seguente comando:
gcloud compute ssh --zone=us-central1-a my-vm
Libera spazio
Per evitare che al tuo Google Cloud account vengano addebitati costi relativi alle risorse utilizzate in questa pagina, elimina il Google Cloud progetto con le risorse.
In Cloud Shell, esegui questo comando per eliminare le risorse Terraform:
terraform destroy
Quando richiesto, inserisci yes.
L'output dovrebbe essere simile al seguente:
Destroy complete! Resources: 1 destroyed.