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ürCloud de Confiance (Cloud de Confiance Provider) können Sie die Infrastruktur bereitstellen und Cloud de Confiance verwalten.

Hinweis

  1. 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.

  2. Erstellen Sie ein Cloud de Confiance 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 die resourcemanager.projects.create Berechtigung enthält. Informationen zum Zuweisen von Rollen.
    • Erstellen Sie ein Cloud de Confiance Projekt:

      gcloud projects create PROJECT_ID

      Ersetzen Sie PROJECT_ID durch einen Namen für das Cloud de Confiance Projekt, das Sie erstellen.

    • Wählen Sie das von Ihnen erstellte Cloud de Confiance Projekt aus:

      gcloud config set project PROJECT_ID

      Ersetzen Sie PROJECT_ID durch Ihren Cloud de Confiance Projektnamen.

  3. Prüfen Sie, ob für Ihr Cloud de Confiance Projekt die Abrechnung aktiviert ist.

  4. 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 der serviceusage.services.enable Berechtigung. Informationen zum Zuweisen von Rollen.

    gcloud services enable compute.googleapis.com
  5. Weisen Sie Ihrem Nutzerkonto Rollen zu. Führen Sie den folgenden Befehl für jede der folgenden IAM-Rollen einmal aus: roles/compute.instanceAdmin.v1

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Ersetzen Sie Folgendes:

Umgebung vorbereiten

  1. Klonen Sie das GitHub-Repository mit Terraform-Beispielen:

    git clone https://github.com/terraform-google-modules/terraform-docs-samples.git --single-branch
    
  2. 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. In dieser Datei werden die Cloud de Confiance Ressourcen definiert, die Sie erstellen möchten.

cat main.tf

Die Ausgabe sieht etwa so aus:

resource "google_compute_instance" "default" {
  name         = "my-vm"
  machine_type = "n1-standard-1"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "ubuntu-minimal-2210-kinetic-amd64-v20230126"
    }
  }

  network_interface {
    network = "default"
    access_config {}
  }
}

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 auf my-vm gesetzt.
  • machine_type ist auf n1-standard-1 gesetzt.
  • zone ist auf us-central1-a gesetzt.
  • boot_disk legt das Bootlaufwerk für die Instanz fest.
  • network_interface ist so eingestellt, dass das Standardnetzwerk in Ihrem Cloud de Confiance Projekt verwendet wird.

Compute Engine-VM-Instanz erstellen

  1. 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
    
    
  2. 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!
    
    
  3. 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.
    
  4. 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 Cloud de Confiance APIs auf, um die in der main.tf Datei 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 Cloud de Confiance Konto von die auf dieser Seite verwendeten Ressourcen nicht in Rechnung gestellt werden. Cloud de Confiance

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.

Nächste Schritte