Hashicorp Terraform ist ein IaC-Tool (Infrastructure as Code), mit dem Sie eine Cloud-Infrastruktur bereitstellen und verwalten können. Terraform bietet Plug-ins, die als Anbieter bezeichnet werden und mit denen Sie mit Cloud-Anbietern und anderen APIs interagieren können. Sie können den Terraform-Anbieter für Google Cloud (Google Cloud-Anbieter) verwenden, um die Google Cloud-Infrastruktur bereitzustellen und zu verwalten.
Vorteile von Terraform
In diesem Abschnitt werden einige der Vorteile von Terraform zum Bereitstellen und Verwalten der Google Cloud-Infrastruktur erläutert:
- Terraform ist das am häufigsten verwendete Tool zur Bereitstellung und Automatisierung der Google Cloud-Infrastruktur. Mit dem Google Cloud-Anbieter können Sie alle Google Cloud-Ressourcen mit derselben deklarativen Syntax und denselben Tools konfigurieren und verwalten.
- Mit Terraform können Sie den bevorzugten Endzustand für Ihre Infrastruktur angeben. Sie können dann dieselbe Konfiguration mehrmals bereitstellen, um reproduzierbare Entwicklungs-, Test- und Produktionsumgebungen zu erstellen.
- Mit Terraform können Sie einen Ausführungsplan generieren, der zeigt, was Terraform beim Anwenden Ihrer Konfiguration tut. Dadurch können Sie Überraschungen vermeiden, wenn Sie Ihre Infrastruktur über Terraform ändern.
- Mit Terraform können Sie gemeinsamen Code in Form von Modulen verpacken und wiederverwenden. Module bieten Standardschnittstellen zum Erstellen von Cloud-Ressourcen. Sie vereinfachen Projekte, da sie die Lesbarkeit verbessern und ermöglichen es Teams, die Infrastruktur in lesbaren Blöcken zu organisieren. Darüber hinaus veröffentlicht Google Cloud eine Reihe von speziell konzipierten bereitstellbaren Modulen als Blueprints und Beispiele für die ersten Schritte als Schnellstartlösungen.
- Terraform zeichnet den aktuellen Status Ihrer Infrastruktur auf und ermöglicht Ihnen, den Zustand effektiv zu verwalten. Die Terraform-Zustandsdatei verfolgt alle Ressourcen in einer Bereitstellung.
Terraform verwenden
Terraform hat eine deklarative, konfigurationsorientierte Syntax, mit der Sie die Infrastruktur erstellen können, die Sie bereitstellen möchten. Mit dieser Syntax definieren Sie den bevorzugten Endzustand für Ihre Infrastruktur in einer Terraform-Konfigurationsdatei. Anschließend verwenden Sie die Terraform-Befehlszeile, um Infrastruktur basierend auf der Konfigurationsdatei bereitzustellen.
In den folgenden Schritten wird die Funktionsweise von Terraform erläutert:
- Sie beschreiben die Google Cloud-Infrastruktur, die Sie bereitstellen möchten, in einer Terraform-Konfigurationsdatei. Sie müssen keinen Code schreiben, der beschreibt, wie diese Konfiguration bereitgestellt wird.
- Sie führen den Befehl
terraform plan
aus, der Ihre Konfiguration auswertet und einen Ausführungsplan generiert. Sie können den Plan prüfen und bei Bedarf Änderungen vornehmen. - Anschließend führen Sie den Befehl
terraform apply
aus, der die folgenden Aktionen ausführt:- Es stellt Ihre Infrastruktur basierend auf Ihrem Ausführungsplan bereit, indem die entsprechenden Google Cloud APIs im Hintergrund aufgerufen werden.
- Es wird eine Terraform-Zustandsdatei erstellt, eine JSON-formatierte Zuordnung von Ressourcen in Ihrer Konfigurationsdatei zu den Ressourcen in der realen Infrastruktur. Terraform verwendet diese Datei, um den neuesten Status Ihrer Infrastruktur zu kennen und zu bestimmen, wann Ressourcen erstellt, aktualisiert und gelöscht werden müssen.
- Wenn Sie anschließend
terraform apply
ausführen, verwendet Terraform die Zuordnung in der Zustandsdatei, um die vorhandene Infrastruktur mit dem Code zu vergleichen und bei Bedarf Aktualisierungen vorzunehmen:- Wenn ein in der Konfigurationsdatei definiertes Ressourcenobjekt in der Zustandsdatei nicht vorhanden ist, erstellt Terraform es.
- Wenn ein Ressourcenobjekt in der Zustandsdatei vorhanden ist, aber eine andere Konfiguration als die Konfigurationsdatei hat, aktualisiert Terraform die Ressource entsprechend Ihrer Konfigurationsdatei.
- Wenn ein Ressourcenobjekt in der Zustandsdatei mit der Konfigurationsdatei übereinstimmt, lässt Terraform die Ressource unverändert.
Google Cloud-Anbieter
Es gibt zwei Anbieter, mit denen Sie die Google Cloud-Infrastruktur bereitstellen und verwalten können:
google
: Verwenden Sie diesen Anbieter, um Google Cloud APIs bereitzustellen und zu verwalten.google-beta
: Verwenden Sie diesen Anbieter, um Google Cloud Beta APIs bereitzustellen und zu verwalten.
Eine Anleitung zur Verwendung dieser Anbieter finden Sie in der Referenz zur Google Cloud-Anbieterkonfiguration.
Anbieter google
und google-beta
werden mit einem Tool namens Magic Modules entwickelt. Mit Magic Modules können Beitragende Änderungen an einer einzigen Codebasis vornehmen und sowohl google
- als auch google-beta
-Anbieter gleichzeitig entwickeln.
Sie können Google Cloud-Anbieter mithilfe von Magischen Modulen unterstützen, indem Sie der Anleitung im Beitragsleitfaden für Magische Module folgen.
Nächste Schritte
- Einfachen Webserver in Compute Engine mit Terraform erstellen
- Terraform-Zustand in einem Cloud Storage-Bucket speichern
- Verschiedene Beispiele für Terraform für Google Cloud
- Terraform-Module und -Blueprints für Google Cloud