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 Infrastruktur bereitstellen und Google Cloud verwalten.
Hinweis
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.
-
Erstellen Sie ein Google Cloud Projekt oder wählen Sie eines aus.
Erforderliche Rollen zum Auswählen oder Erstellen eines Projekts
- Projekt auswählen: Für die Auswahl eines Projekts ist keine bestimmte IAM-Rolle erforderlich. Sie können ein beliebiges Projekt auswählen, für das Ihnen eine Rolle zugewiesen wurde.
-
Projekt erstellen: Zum Erstellen eines Projekts benötigen Sie die Rolle „Projektersteller“
(
roles/resourcemanager.projectCreator), die dieresourcemanager.projects.createBerechtigung enthält. Informationen zum Zuweisen von Rollen.
-
Erstellen Sie ein Google Cloud Projekt:
gcloud projects create PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch einen Namen für das Google Cloud Projekt, das Sie erstellen. -
Wählen Sie das von Ihnen erstellte Google Cloud Projekt aus:
gcloud config set project PROJECT_ID
Ersetzen Sie
PROJECT_IDdurch Ihren Google Cloud Projektnamen.
-
Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.
-
Aktivieren Sie die Compute Engine API:
Erforderliche Rollen zum Aktivieren von APIs
Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (
roles/serviceusage.serviceUsageAdmin) mit derserviceusage.services.enableBerechtigung. Informationen zum Zuweisen von Rollen.gcloud services enable compute.googleapis.com
-
Weisen Sie Ihrem Nutzerkonto Rollen zu. Führen Sie den folgenden Befehl für jede der folgenden IAM-Rollen einmal aus:
roles/compute.instanceAdmin.v1gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID.USER_IDENTIFIER: Die Kennung für Ihr Nutzerkonto. Konto. Beispiele finden Sie unter Mitarbeiterpoolnutzer in IAM-Richtlinien darstellen.ROLE: Die IAM-Rolle, die Sie Ihrem Nutzerkonto zuweisen.
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 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:
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
main.tfDatei 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 Projekt von zusammen mit den Ressourcen, damit Ihrem Google Cloud Konto von die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden. Google Cloud
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.