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 Terraform-Provider für Google Cloud (Google Cloud-Anbieter) 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.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with 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_ID
with your Google Cloud project name.
-
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API:
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.v1
gcloud projects add-iam-policy-binding PROJECT_ID --member="USER_IDENTIFIER" --role=ROLE
- Replace
PROJECT_ID
with your project ID. -
Replace
USER_IDENTIFIER
with the identifier for your user account. For examples, see Represent workforce pool users in IAM policies. - Replace
ROLE
with each individual role.
- Replace
Umgebung vorbereiten
Klonen Sie das GitHub-Repository mit Terraform-Beispielen:
git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branch
Gehen 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
. Diese Datei definiert die Google Cloud-Ressourcen, 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:
name
ist aufmy-vm
gesetzt.machine_type
ist aufn1-standard-1
gesetzt.zone
ist aufus-central1-a
gesetzt.boot_disk
legt das Bootlaufwerk für die Instanz fest.network_interface
ist so eingestellt, dass das Standardnetzwerk in Ihrem Google 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:
terraform
Die 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 infrastructure
Initialisieren Sie Terraform mit dem folgenden Befehl. Mit diesem Befehl wird der Arbeitsbereich vorbereitet, damit Terraform Ihre Konfiguration anwenden kann.
terraform init
Die 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.tf
korrekt ist - Zeigt eine Vorschau der Ressourcen an, die erstellt werden.
terraform plan
Die 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.tf
beschriebenen Ressourcen bereitzustellen:terraform apply
Geben Sie bei Aufforderung
yes
ein.Terraform ruft Google Cloud APIs auf, um die in der Datei
main.tf
definierte 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 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.