Kurzanleitung: VM-Instanz mit Terraform erstellen
In dieser Kurzanleitung erfahren Sie, wie Sie mit Terraform eine Compute Engine-VM-Instanz erstellen und eine Verbindung zur VM-Instanz herstellen.
Hashicorp Terraform ist ein IaC-Tool (Infrastructure as Code), mit dem Sie eine Cloud-Infrastruktur bereitstellen und verwalten können. Mit dem Terraform-Provider fürGoogle Cloud (Google Cloud -Provider) können Sie die Google Cloud -Infrastruktur bereitstellen und verwalten.
Hinweise
Wenn Sie ein Onlineterminal mit bereits eingerichteter gcloud CLI und Terraform einrichten möchten, aktivieren Sie Cloud Shell.
Unten auf dieser Seite wird eine Cloud Shell-Sitzung gestartet und eine Eingabeaufforderung angezeigt. Das Initialisieren der Sitzung kann einige Sekunden dauern.
-
Create or select a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_IDwith a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_IDwith your Google Cloud project name.
-
Verify that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API:
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.gcloud services enable compute.googleapis.com
-
Grant roles to your user account. Run the following command once for each of the following IAM roles:
roles/compute.instanceAdmin.v1gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Replace the following:
PROJECT_ID: Your project ID.USER_IDENTIFIER: The identifier for your user account. For examples, see Represent workforce pool users in IAM policies.ROLE: The IAM role that you grant to your user account.
Umgebung vorbereiten
Klonen Sie das GitHub-Repository mit Terraform-Beispielen:
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branchGehen Sie zu dem Verzeichnis, das das Schnellstartbeispiel enthält:
cd terraform-docs-samples/compute/quickstart/create_vm
Terraform-Dateien prüfen
Prüfen Sie die Datei main.tf. In dieser Datei werden die Google Cloud-Ressourcen definiert, die Sie erstellen möchten.
cat main.tf
Die Ausgabe sieht etwa so aus:
Diese Datei beschreibt die google_compute_instance-Ressource, die die Terraform-Ressource für die Compute Engine-VM-Instanz ist. google_compute_instance ist so konfiguriert, um
die folgenden Eigenschaften zu haben:
nameist aufmy-vmgesetzt.machine_typeist aufn1-standard-1gesetzt.zoneist aufus-central1-agesetzt.boot_disklegt das Bootlaufwerk für die Instanz fest.network_interfaceist so eingestellt, dass das Standardnetzwerk in IhremGoogle Cloud -Projekt verwendet wird.
Compute Engine-VM-Instanz erstellen
Führen Sie in Cloud Shell den folgenden Befehl aus, um zu prüfen, ob Terraform verfügbar ist:
terraformDie Ausgabe sollte in etwa so aussehen:
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 infrastructureInitialisieren Sie Terraform mit dem folgenden Befehl. Mit diesem Befehl wird der Arbeitsbereich vorbereitet, damit Terraform Ihre Konfiguration anwenden kann.
terraform initDie Ausgabe sollte in etwa so aussehen:
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!Validieren Sie die Terraform-Konfiguration mit dem folgenden Befehl. Dieser Befehl führt die folgenden Aktionen aus:
- Überprüft, ob die Syntax von
main.tfkorrekt ist - Zeigt eine Vorschau der Ressourcen an, die erstellt werden.
terraform planDie Ausgabe sollte in etwa so aussehen:
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.- Überprüft, ob die Syntax von
Wenden Sie die Konfiguration an, um die in der Datei
main.tfbeschriebenen Ressourcen bereitzustellen:terraform applyGeben Sie bei Aufforderung
yesein.Terraform ruft Google Cloud APIs auf, um die in der Datei
main.tfdefinierte VM-Instanz zu erstellen.Die Ausgabe sollte in etwa so aussehen:
Apply complete! Resources: 1 added, 0 changed, 0 destroyed
Verbindung zur VM-Instanz herstellen
Stellen Sie eine Verbindung zu der soeben erstellten VM-Instanz her, indem Sie den folgenden Befehl ausführen:
gcloud compute ssh --zone=us-central1-a my-vm
Bereinigen
Löschen Sie das Google Cloud -Projekt zusammen mit den Ressourcen, damit Ihrem Google Cloud -Konto die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden.
Führen Sie in Cloud Shell den folgenden Befehl aus, um die Terraform-Ressourcen zu löschen:
terraform destroy
Geben Sie bei Aufforderung yes ein.
Die Ausgabe sollte in etwa so aussehen:
Destroy complete! Resources: 1 destroyed.