arrow_back

Terraform-Grundlagen

Anmelden Teilnehmen
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

Terraform-Grundlagen

Lab 35 Minuten universal_currency_alt 1 Guthabenpunkt show_chart Einsteiger
Test and share your knowledge with our community!
done
Get access to over 700 hands-on labs, skill badges, and courses

GSP156

Logo: Google Cloud-Labs zum selbstbestimmten Lernen

Übersicht

Mit Terraform können Sie Infrastruktur sicher und vorhersagbar erstellen, ändern und verbessern. Das Open-Source-Tool kodifiziert APIs in deklarative Konfigurationsdateien, die unter Teammitgliedern ausgetauscht und genau wie Code behandelt, bearbeitet, geprüft und versioniert werden können.

Lernziele

Aufgaben in diesem Lab:

  • Erste Schritte mit Terraform in Google Cloud
  • Terraform aus Binärdateien installieren
  • Mit Terraform eine auf VM-Instanzen basierende Infrastruktur erstellen

Einrichtung und Anforderungen

Vor dem Klick auf „Start Lab“ (Lab starten)

Lesen Sie diese Anleitung. Labs sind zeitlich begrenzt und können nicht pausiert werden. Der Timer beginnt zu laufen, wenn Sie auf Lab starten klicken, und zeigt Ihnen, wie lange die Ressourcen für das Lab verfügbar sind.

In diesem praxisorientierten Lab können Sie die Lab-Aktivitäten in einer echten Cloud-Umgebung selbst durchführen – nicht in einer Simulations- oder Demo-Umgebung. Dazu erhalten Sie neue, temporäre Anmeldedaten, mit denen Sie für die Dauer des Labs auf Google Cloud zugreifen können.

Für dieses Lab benötigen Sie Folgendes:

  • Einen Standardbrowser (empfohlen wird Chrome)
Hinweis: Nutzen Sie den privaten oder Inkognitomodus, um dieses Lab durchzuführen. So wird verhindert, dass es zu Konflikten zwischen Ihrem persönlichen Konto und dem Teilnehmerkonto kommt und zusätzliche Gebühren für Ihr persönliches Konto erhoben werden.
  • Zeit für die Durchführung des Labs – denken Sie daran, dass Sie ein begonnenes Lab nicht unterbrechen können.
Hinweis: Wenn Sie über ein persönliches Google Cloud-Konto oder -Projekt verfügen, verwenden Sie es nicht für dieses Lab. So werden zusätzliche Kosten für Ihr Konto vermieden.

Lab starten und bei der Google Cloud Console anmelden

  1. Klicken Sie auf Lab starten. Wenn Sie für das Lab bezahlen müssen, wird ein Pop-up-Fenster geöffnet, in dem Sie Ihre Zahlungsmethode auswählen können. Auf der linken Seite befindet sich der Bereich Details zum Lab mit diesen Informationen:

    • Schaltfläche Google Cloud Console öffnen
    • Restzeit
    • Temporäre Anmeldedaten für das Lab
    • Ggf. weitere Informationen für dieses Lab
  2. Klicken Sie auf Google Cloud Console öffnen (oder klicken Sie mit der rechten Maustaste und wählen Sie Link in Inkognitofenster öffnen aus, wenn Sie Chrome verwenden).

    Im Lab werden Ressourcen aktiviert. Anschließend wird ein weiterer Tab mit der Seite Anmelden geöffnet.

    Tipp: Ordnen Sie die Tabs nebeneinander in separaten Fenstern an.

    Hinweis: Wird das Dialogfeld Konto auswählen angezeigt, klicken Sie auf Anderes Konto verwenden.
  3. Kopieren Sie bei Bedarf den folgenden Nutzernamen und fügen Sie ihn in das Dialogfeld Anmelden ein.

    {{{user_0.username | "Username"}}}

    Sie finden den Nutzernamen auch im Bereich Details zum Lab.

  4. Klicken Sie auf Weiter.

  5. Kopieren Sie das folgende Passwort und fügen Sie es in das Dialogfeld Willkommen ein.

    {{{user_0.password | "Password"}}}

    Sie finden das Passwort auch im Bereich Details zum Lab.

  6. Klicken Sie auf Weiter.

    Wichtig: Sie müssen die für das Lab bereitgestellten Anmeldedaten verwenden. Nutzen Sie nicht die Anmeldedaten Ihres Google Cloud-Kontos. Hinweis: Wenn Sie Ihr eigenes Google Cloud-Konto für dieses Lab nutzen, können zusätzliche Kosten anfallen.
  7. Klicken Sie sich durch die nachfolgenden Seiten:

    • Akzeptieren Sie die Nutzungsbedingungen.
    • Fügen Sie keine Wiederherstellungsoptionen oder Zwei-Faktor-Authentifizierung hinzu (da dies nur ein temporäres Konto ist).
    • Melden Sie sich nicht für kostenlose Testversionen an.

Nach wenigen Augenblicken wird die Google Cloud Console in diesem Tab geöffnet.

Hinweis: Wenn Sie sich eine Liste der Google Cloud-Produkte und ‑Dienste ansehen möchten, klicken Sie oben links auf das Navigationsmenü. Symbol für Navigationsmenü

Cloud Shell aktivieren

Cloud Shell ist eine virtuelle Maschine, auf der Entwicklertools installiert sind. Sie bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und läuft auf Google Cloud. Mit Cloud Shell erhalten Sie Befehlszeilenzugriff auf Ihre Google Cloud-Ressourcen.

  1. Klicken Sie oben in der Google Cloud Console auf Cloud Shell aktivieren Symbol für Cloud Shell-Aktivierung.

Wenn Sie verbunden sind, sind Sie bereits authentifiziert und das Projekt ist auf Ihre Project_ID, eingestellt. Die Ausgabe enthält eine Zeile, in der die Project_ID für diese Sitzung angegeben ist:

Ihr Cloud-Projekt in dieser Sitzung ist festgelegt als {{{project_0.project_id | "PROJECT_ID"}}}

gcloud ist das Befehlszeilentool für Google Cloud. Das Tool ist in Cloud Shell vorinstalliert und unterstützt die Tab-Vervollständigung.

  1. (Optional) Sie können den aktiven Kontonamen mit diesem Befehl auflisten:
gcloud auth list
  1. Klicken Sie auf Autorisieren.

Ausgabe:

ACTIVE: * ACCOUNT: {{{user_0.username | "ACCOUNT"}}} Um das aktive Konto festzulegen, führen Sie diesen Befehl aus: $ gcloud config set account `ACCOUNT`
  1. (Optional) Sie können die Projekt-ID mit diesem Befehl auflisten:
gcloud config list project

Ausgabe:

[core] project = {{{project_0.project_id | "PROJECT_ID"}}} Hinweis: Die vollständige Dokumentation für gcloud finden Sie in Google Cloud in der Übersicht zur gcloud CLI.

Was ist Terraform?

Terraform ist ein Tool zum sicheren und effizienten Erstellen, Bearbeiten und Versionieren von Infrastruktur. Terraform kann gängige Serviceprovider und kundenspezifische Inhouse-Lösungen verwalten.

Konfigurationsdateien enthalten die Beschreibung der Komponenten, die Terraform benötigt, um eine einzelne Anwendung oder Ihr gesamtes Rechenzentrum zu betreiben. Terraform erstellt einen Ausführungsplan und beschreibt, was unternommen wird, um den gewünschten Status zu erreichen. Anschließend führt Terraform den Plan aus, um die beschriebene Infrastruktur zu erzeugen. Bei Änderungen an der Konfiguration ermittelt Terraform, was geändert wurde, und stellt inkrementelle Ausführungspläne bereit.

Die von Terraform verwaltete Infrastruktur umfasst Komponenten der unteren Ebene wie Compute-Instanzen, den Speicher und das Netzwerk sowie Komponenten der oberen Ebene wie DNS-Einträge, SaaS-Funktionen usw.

Wichtige Features

Infrastruktur als Code

Infrastruktur wird mit einer allgemeinen Konfigurationssyntax beschrieben. So lässt sich ein Entwurf Ihres Rechenzentrums versionieren und wie ganz normaler Code behandeln. Darüber hinaus kann Infrastruktur gemeinsam genutzt und wiederverwendet werden.

Ausführungspläne

In Terraform gibt es einen Planungsschritt, in dem ein Ausführungsplan erstellt wird. Der Ausführungsplan zeigt, welche Aktionen Terraform vornimmt, wenn Sie den Befehl apply ausführen. So lassen sich Überraschungen vermeiden, wenn Terraform Änderungen an der Infrastruktur vornimmt.

Ressourcengrafik

Terraform legt eine Grafik Ihrer Ressourcen an und parallelisiert die Erstellung und Änderung aller unabhängigen Ressourcen. Dadurch kann Terraform Infrastruktur so effizient wie möglich erstellen und Betreiber erhalten Einblicke in die Abhängigkeiten ihrer Infrastruktur.

Änderungen automatisieren

Sie können an Ihrer Infrastruktur mit minimalem manuellem Aufwand komplexe Änderungen vornehmen. Dank des zuvor erwähnten Ausführungsplans und der Ressourcengrafik wissen Sie genau, was Terraform in welcher Reihenfolge ändert. So lassen sich menschliche Fehler vermeiden.

Aufgabe 1: Terraform-Installation prüfen

Terraform ist in Cloud Shell vorinstalliert.

  • Öffnen Sie einen neuen Cloud Shell-Tab und prüfen Sie, ob Terraform verfügbar ist:
terraform

Die entsprechende Hilfeausgabe sollte in etwa so aussehen:

Usage: terraform [‑‑version] [‑‑help] [args] Die verfügbaren Befehle zur Ausführung finden Sie unten. Die häufigsten und nützlichsten Befehle werden zuerst angezeigt, danach folgen die weniger gebräuchlichen oder komplexeren Befehle. Bleiben Sie bei den gängigen Befehlen, wenn Sie gerade erst mit Terraform anfangen. Für die anderen Befehle sollten Sie vor der Verwendung die Hilfe und die Dokumentation lesen. Allgemeine Befehle: apply Erstellt oder verändert die Infrastruktur console Interaktive Console für Terraform-Interpolationen destroy Von Terraform verwaltete Infrastruktur zerstören env Arbeitsbereich verwalten fmt Schreibt Konfigurationsdateien in ein kanonisches Format um get Module für die Konfiguration herunterladen und installieren graph Visuelle Grafik der Terraform-Ressourcen erstellen import Vorhandene Infrastruktur in Terraform importieren init Terraform-Arbeitsverzeichnis initialisieren output Ausgabe aus einer Statusdatei lesen plan Ausführungsplan erstellen und anzeigen providers Gibt eine Baumstruktur der in der Konfiguration verwendeten Provider aus push Dieses Terraform-Modul zur Ausführung in Atlas hochladen refresh Lokale Statusdatei mit realen Ressourcen aktualisieren show Terraform-Status oder -Plan prüfen taint Ressource zur erneuten Erstellung manuell markieren untaint Manuelles Aufheben der Markierung einer Ressource validate Prüft die Terraform-Dateien version Gibt die Terraform-Version aus workspace Arbeitsbereichsverwaltung Alle anderen Befehle: debug Debug-Ausgaben verwalten (experimentell) force-unlock Manuelles Entsperren des Terraforming-Status state Erweiterte Statusverwaltung

Aufgabe 2: Infrastruktur erstellen

Sobald Terraform installiert wurde, können Sie mit dem Erstellen einer Infrastruktur beginnen.

Konfiguration

Die Dateien zur Beschreibung der Infrastruktur in Terraform werden einfach als Terraform configuration bezeichnet. In diesem Abschnitt schreiben Sie Ihre erste Konfiguration, um eine einzelne VM‑Instanz zu starten. Das Format der Konfigurationsdateien finden Sie in der Dokumentation zur Terraform-Sprache. Zum Erstellen dieser Dateien wird das JSON-Format empfohlen.

  1. Erstellen Sie in Cloud Shell mit dem nachfolgenden Befehl eine leere Konfigurationsdatei mit dem Namen instance.tf:
touch instance.tf
  1. Klicken Sie in der Cloud Shell-Symbolleiste auf Editor öffnen.
    Wenn Sie zwischen Cloud Shell und dem Code-Editor wechseln möchten, klicken Sie entsprechend auf Editor öffnen oder Terminal öffnen. Sie können auch auf In neuem Fenster öffnen klicken, damit der Editor in einem eigenen Tab geöffnet bleibt.

  2. Klicken Sie auf die Datei instance.tf und fügen Sie den folgenden Inhalt hinzu. Ersetzen Sie dabei <PROJECT_ID> durch Ihre Google Cloud-Projekt-ID:

resource "google_compute_instance" "terraform" { project = "{{{project_0.project_id}}}" name = "terraform" machine_type = "e2‑medium" zone = "{{{project_0.default_zone}}}" boot_disk { initialize_params { image = "debian-cloud/debian‑11" } } network_interface { network = "default" access_config { } } }

Das ist eine vollständige Konfiguration, die von Terraform angewendet werden kann. Die allgemeine Struktur sollte intuitiv und unkompliziert sein.

Der Ressourcenblock in der Datei instance.tf definiert eine Ressource, die in der Infrastruktur existiert. Bei einer Ressource kann es sich um eine physische Komponente wie eine VM-Instanz handeln.

Der Ressourcenblock hat am Anfang zwei Strings: den Ressourcentyp und den Ressourcennamen. Für dieses Lab lautet der Ressourcentyp google_compute_instance und der Name terraform. Mit dem Präfix des Typs wird der Anbieter identifiziert: Durch google_compute_instance erkennt Terraform automatisch, dass die Ressource mit dem Provider Google verwaltet wird.

Innerhalb des Ressourcenblocks befindet sich die für die Ressource erforderliche Konfiguration.

  1. Vergewissern Sie sich in Cloud Shell, dass Ihre neue Datei hinzugefügt wurde und sich keine weiteren *.tf‑Dateien in Ihrem Verzeichnis befinden, da Terraform alle Dateien lädt:
ls

Initialisierung

Der erste Befehl, der bei einer neuen Konfiguration ausgeführt wird, lautet terraform init. Dies gilt auch, wenn Sie eine bestehende Konfiguration der Versionsverwaltung überprüfen. Damit werden verschiedene lokale Einstellungen und Daten initialisiert, die von nachfolgenden Befehlen genutzt werden.

Die Architektur von Terraform basiert auf Plug‑ins. So werden die zahlreichen angebotenen Infrastruktur- und Dienstanbieter unterstützt. Jeder „Provider“ besteht aus einem eigenen gekapselten Binärprogramm, das getrennt von Terraform bereitgestellt wird. Mit dem Befehl terraform init werden die Binärprogramme aller Provider, die in der Konfiguration verwendet werden, automatisch heruntergeladen und installiert; in diesem Fall nur der Provider Google.

  1. Laden Sie das Provider-Binärprogramm herunter und installieren Sie es:
terraform init

Das Plug‑in des Providers Google wird zusammen mit anderen Verwaltungsdateien in ein Unterverzeichnis des aktuellen Arbeitsverzeichnisses heruntergeladen und dort installiert. Die Nachricht „Initializing provider plugins“ wird angezeigt. Terraform weiß, dass Sie ein Google-Projekt ausführen, und ruft Google-Ressourcen ab.

Installing hashicorp/google v4.77.0... Hinweis: Ihre Versionsnummer ist möglicherweise höher.

In der Ausgabe wird die Version des installierten Plug‑ins angegeben und es wird empfohlen, sie auch in künftigen Konfigurationsdateien zu verwenden, um sicherzustellen, dass terraform init eine kompatible Version installiert.

  1. Ausführungsplan erstellen:
terraform plan

Sofern nicht explizit deaktiviert, führt Terraform eine Aktualisierung durch und ermittelt dann, welche Aktionen notwendig sind, um den gewünschten Status zu erreichen, der in den Konfigurationsdateien festgelegt wurde. Mit diesem Befehl können Sie ganz unkompliziert prüfen, ob der Ausführungsplan für eine Reihe an Änderungen Ihren Erwartungen entspricht, ohne Änderungen an den eigentlichen Ressourcen oder am Status vorzunehmen. Sie können diesen Befehl beispielsweise ausführen, bevor Sie eine Änderung an die Versionsverwaltung übergeben, um ein erwartungsgemäßes Verhalten zu gewährleisten.

Hinweis: Mit dem optionalen ‑out‑Argument können Sie den erstellten Plan in einer Datei speichern, um ihn später mit dem Befehl terraform apply auszuführen.

Änderungen übernehmen

  1. Führen Sie in demselben Verzeichnis wie die von Ihnen erstellte Datei instance.tf diesen Befehl aus:
terraform apply

Diese Ausgabe zeigt den Ausführungsplan, in dem die Aktionen beschrieben werden, die Terraform an der tatsächlichen Infrastruktur vornimmt, um sie der gewünschten Konfiguration anzupassen. Das Ausgabeformat ähnelt dem diff-Format, das von Tools wie Git erstellt wird.

Neben google_compute_instance.terraform befindet sich ein +, was bedeutet, dass Terraform diese Ressource erstellt. Es folgen die Attribute, die festgelegt werden. Wird der Wert <computed> angezeigt, bedeutet das, dass der Wert unbekannt ist, bis die Ressource erstellt wird.

Beispielausgabe:

Ein Ausführungsplan wurde erstellt und wird unten angezeigt. Ressourcenaktionen werden mit den folgenden Symbolen gekennzeichnet: + create Terraform führt die folgenden Aktionen aus: # google_compute_instance.default will be created + resource "google_compute_instance" "default" { + can_ip_forward = false + cpu_platform = (known after apply) + deletion_protection = false + guest_accelerator = (known after apply) + id = (known after apply) + instance_id = (known after apply) + label_fingerprint = (known after apply) + machine_type = "n1‑standard‑1" + metadata_fingerprint = (known after apply) + name = "terraform" + project = "qwiklabs‑gcp-42390cc9da8a4c4b" + self_link = (known after apply) + tags_fingerprint = (known after apply) + zone = "us‑central1‑a" + boot_disk { + auto_delete = true + device_name = (known after apply) + disk_encryption_key_sha256 = (known after apply) + kms_key_self_link = (known after apply) + source = (known after apply) + initialize_params { + image = "debian-cloud/debian‑9" + labels = (known after apply) + size = (known after apply) + type = (known after apply) } } + network_interface { + address = (known after apply) + name = (known after apply) + network = "default" + network_ip = (known after apply) + subnetwork = (known after apply) + subnetwork_project = (known after apply) + access_config { + assigned_nat_ip = (known after apply) + nat_ip = (known after apply) + network_tier = (known after apply) } } + scheduling { + automatic_restart = (known after apply) + on_host_maintenance = (known after apply) + preemptible = (known after apply) + node_affinities { + key = (known after apply) + operator = (known after apply) + values = (known after apply) } } } Plan: 1 to add, 0 to change, 0 to destroy. Do you want to perform these actions? Terraform will perform the actions described above. Only 'yes' will be accepted to approve. Enter a value:

Wenn der Plan erfolgreich erstellt wurde, hält Terraform an und fährt erst nach einer Bestätigung fort. In einer Produktionsumgebung kann an dieser Stelle bedenkenlos abgebrochen werden, falls etwas im Ausführungsplan fehlerhaft oder gefährlich erscheint. An Ihrer Infrastruktur wurden noch keine Änderungen vorgenommen.

  1. Für dieses Beispiel sieht der Plan akzeptabel aus, geben Sie also, wenn Sie zur Bestätigung aufgefordert werden, yes ein, um fortzufahren.
    Die Ausführung des Plans dauert einige Minuten, da Terraform wartet, bis die VM‑Instanz verfügbar ist.

Danach ist Terraform fertig.

Abgeschlossene Aufgabe testen

Klicken Sie auf Fortschritt prüfen. Haben Sie die Aufgabe erfolgreich abgeschlossen, erhalten Sie ein Testergebnis.

Erstellen Sie mit Terraform eine VM‑Instanz in der Zone.
  1. Klicken Sie in der Google Cloud Console im Navigationsmenü auf Compute Engine > VM‑Instanzen. Die Seite VM‑Instanzen wird geöffnet und die soeben erstellte VM‑Instanz wird in der Liste VM‑Instanzen angezeigt.

Terraform hat einige Daten in die Datei terraform.tfstate geschrieben. Diese Statusdatei ist äußerst wichtig, denn darin werden die IDs der erstellten Ressourcen erfasst, sodass Terraform weiß, was verwaltet wird.

  1. Prüfen Sie in Cloud Shell den aktuellen Status:
terraform show

Beispielausgabe:

# google_compute_instance.default: resource "google_compute_instance" "default" { can_ip_forward = false cpu_platform = "Intel Haswell" deletion_protection = false guest_accelerator = [] id = "terraform" instance_id = "3408292216444307052" label_fingerprint = "42WmSpB8rSM=" machine_type = "e2‑medium" metadata_fingerprint = "s6I5s2tjfKw=" name = "terraform" project = "qwiklabs‑gcp-42390cc9da8a4c4b" self_link = "https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-42390cc9da8a4c4b/zones/{{{project_0.default_zone}}}/instances/terraform" tags_fingerprint = "42WmSpB8rSM=" zone = "{{{project_0.default_zone}}}" boot_disk { auto_delete = true device_name = "persistent-disk‑0" source = "https://www.googleapis.com/compute/v1/projects/qwiklabs-gcp-42390cc9da8a4c4b/zones/{{{project_0.default_zone}}}/disks/terraform" ....

Mit dem Erstellen der Ressource haben Sie auch viele Informationen über sie erhalten. Diese Werte können als Referenz für die Konfiguration zusätzlicher Ressourcen oder Ausgaben dienen.

Glückwunsch! Sie haben Ihre erste Infrastruktur mit Terraform erstellt. Sie haben die Konfigurationssyntax, ein Beispiel für einen einfachen Ausführungsplan und den Aufbau der Statusdatei gesehen.

Aufgabe 3: Testen Sie Ihr Wissen

Beantworten Sie die folgenden Multiple-Choice-Fragen, um Ihr erworbenes Wissen zu testen und zu festigen. Beantworten Sie die Fragen so gut Sie können.

Glückwunsch

Sie haben dieses Lab erfolgreich abgeschlossen. Sie können nun mit Terraform eine Infrastruktur in Google Cloud erstellen und verwalten.

Aufgabenreihe beenden

Dieses Lab zum selbstbestimmten Lernen ist Teil der Aufgabenreihen Cloud-Infrastruktur mit Terraform verwalten und Infrastruktur auf Google Cloud mit Terraform automatisieren. Eine Aufgabenreihe besteht aus mehreren zusammengehörigen Labs, die gemeinsam einen Lernpfad bilden. Wenn Sie eine Aufgabenreihe abschließen, erhalten Sie ein entsprechendes Skill-Logo. Dieses können Sie öffentlich präsentieren und in Ihrem Online-Lebenslauf oder Social-Media-Konto verlinken. Wenn Sie sich für eine Aufgabenreihe mit diesem Lab registrieren, erhalten Sie umgehend den entsprechenden Nachweis. Weitere Informationen zu den verfügbaren Aufgabenreihen finden Sie im Google Cloud Skills Boost-Katalog.

Nächstes Lab absolvieren

Setzen Sie Ihre Aufgabenreihe mit Infrastruktur als Code mit Terraform fort. Weitere Informationen finden Sie auch in diesen Google Cloud Skills-Labs:

Nächste Schritte / Weitere Informationen

Google Cloud-Schulungen und -Zertifizierungen

In unseren Schulungen erfahren Sie alles zum optimalen Einsatz unserer Google Cloud-Technologien und können sich entsprechend zertifizieren lassen. Unsere Kurse vermitteln technische Fähigkeiten und Best Practices, damit Sie möglichst schnell mit Google Cloud loslegen und Ihr Wissen fortlaufend erweitern können. Wir bieten On-Demand-, Präsenz- und virtuelle Schulungen für Anfänger wie Fortgeschrittene an, die Sie individuell in Ihrem eigenen Zeitplan absolvieren können. Mit unseren Zertifizierungen weisen Sie nach, dass Sie Experte im Bereich Google Cloud-Technologien sind.

Anleitung zuletzt am 26. Januar 2024 aktualisiert

Lab zuletzt am 10. August 2023 getestet

© 2024 Google LLC. Alle Rechte vorbehalten. Google und das Google-Logo sind Marken von Google LLC. Alle anderen Unternehmens- und Produktnamen können Marken der jeweils mit ihnen verbundenen Unternehmen sein.