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 mit dem Terraform-Anbieter für Google Cloud bereitstellen und verwalten Google Cloud-Ressourcen, einschließlich Cloud Build
So funktioniert Terraform
Terraform hat eine deklarative, konfigurationsorientierte Syntax, mit der Sie die Infrastruktur beschreiben können, die Sie in Ihrem Google Cloud-Projekt bereitstellen möchten. Nachdem Sie diese Konfiguration in einer oder mehreren Terraform-Konfigurationsdateien erstellt haben, können Sie die Konfiguration mit der Terraform-Befehlszeile auf Ihre Cloud Build-Ressourcen anwenden.
In den folgenden Schritten wird die Funktionsweise von Terraform erläutert:
- Sie beschreiben die Infrastruktur, die Sie bereitstellen möchten, in einer Terraform-Konfigurationsdatei. Sie müssen keinen Code schreiben, der beschreibt, wie die Infrastruktur bereitgestellt wird. Terraform stellt die Infrastruktur für Sie bereit.
- 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 Cloud Build APIs im Hintergrund aufgerufen werden.
- Es wird eine Terraform-Zustandsdatei erstellt, eine JSON-Datei, die die Ressourcen in Ihrer Konfigurationsdatei den Ressourcen in der realen Infrastruktur zuordnet. Terraform verwendet diese Datei, um den aktuellen Status Ihrer Infrastruktur zu erfassen 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 Ressourcenobjekt in der Konfigurationsdatei definiert ist, im wird sie von Terraform erstellt.
- 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.
Terraform-basierte Anleitungen für Cloud Build
In der folgenden Tabelle sind alle Terraform-basierten Anleitungen für Cloud Build:
Leitfaden | Details |
---|---|
Verbindung zu einem GitHub-Repository herstellen | In diesem Leitfaden wird erläutert, wie Sie ein GitHub-Repository mithilfe von Terraform mit Cloud Build verbinden. |
Verbindung zu einem GitHub Enterprise-Host herstellen | In diesem Leitfaden wird erläutert, wie Sie einen GitHub Enterprise-Host mit Cloud Build mit Terraform |
Verbindung zu einem GitHub Enterprise-Repository herstellen | In dieser Anleitung wird erläutert, wie Sie ein GitHub Enterprise-Repository mit Cloud Build mit Terraform |
Verbindung zu einem GitLab Enterprise Edition-Host herstellen | In diesem Leitfaden wird erläutert, wie Sie einen GitLab Enterprise Edition-Host mit Cloud Build mit Terraform |
Verbindung zu einem GitLab Enterprise Edition-Repository herstellen | In diesem Leitfaden wird erläutert, wie Sie ein GitLab Enterprise Edition-Repository mithilfe von Terraform mit Cloud Build verbinden. |
Verbindung zu einem Bitbucket-Rechenzentrums-Host herstellen | In diesem Leitfaden wird beschrieben, wie Sie mithilfe von Terraform eine Verbindung zwischen einem Bitbucket-Rechenzentrumshost und Cloud Build herstellen. |
Verbindung zu einem Bitbucket-Rechenzentrums-Repository herstellen | In diesem Leitfaden wird erläutert, wie Sie ein Bitbucket Data Center-Repository mit Cloud Build mit Terraform |
Verbindung zu einem Bitbucket Cloud-Host herstellen | In dieser Anleitung wird erläutert, wie Sie einen Bitbucket Cloud-Host mit Cloud Build mit Terraform |
Verbindung zu einem Bitbucket Cloud-Repository herstellen | In dieser Anleitung wird erläutert, wie Sie ein Bitbucket Cloud-Repository mit Cloud Build mit Terraform |
In Compute Engine bereitstellen | In diesem Leitfaden wird erläutert, wie Sie Blau/Grün ohne Ausfallzeiten Bereitstellungen in von Compute Engine verwalteten Instanzgruppen (MIGs) mit Cloud Build und Terraform. |
Terraform-Module und ‑Blueprints für Cloud Build
Module und Blueprints unterstützen Sie bei der Automatisierung der Bereitstellung und Verwaltung von Skalierbare Google Cloud-Ressourcen Ein Modul ist ein wiederverwendbarer Satz von Terraform-Konfigurationsdateien, der eine logische Abstraktion von Terraform-Ressourcen erstellt. Ein Entwurf ist ein bereitstellbares und wiederverwendbares Paket. Module und eine Richtlinie, die eine bestimmte Lösung implementiert und dokumentiert.
In der folgenden Tabelle sind alle Module und Blueprints aufgeführt, die sich auf Cloud Build beziehen:
Modul oder Blueprint | Details |
---|---|
Sichere CI/CD-Pipeline | Mit diesem Modul können Google Cloud-Kunden schnell ein sicheres CI/CD-Pipeline, die viele der in diesem Dokument beschriebenen Funktionen implementiert Links in der Sicherheit: |
terraform-google-bootstrap |
Mit diesem Modul können Sie eine Google Cloud-Organisation einrichten und alle erforderlichen Ressourcen und Berechtigungen erstellen, um das Cloud Foundation Toolkit (CFT) zu verwenden. Für Nutzende, die Cloud Build und Cloud Source Repositories für Grundlagencode, enthält dieses Modul ein Submodul, das alle erforderlichen Ressourcen. |
Terraform-Ressourcen für Cloud Build
Ressourcen sind die grundlegenden Elemente der Terraform-Sprache. Jedes Ressourcenblock beschreibt ein oder mehrere Infrastrukturobjekte, z. B. virtuelle Objekte, Netzwerke oder Compute-Instanzen.
In der folgenden Tabelle sind die Terraform-Ressourcen aufgeführt, die für Cloud Build:
Cloud Build-Dienst | Terraform-Ressourcen | Datenquelle |
---|---|---|
Cloud Build v1 | google_cloudbuild_trigger
|
|
Cloud Build v2 | google_cloudbuildv2_connection_iam_policy |
Nächste Schritte
- Terraform-Codebeispiele für Cloud Build
- Dokumentation zu Terraform in Google Cloud
- Google Cloud-Anbieterdokumentation in HashiCorp
- Infrastruktur als Code für Google Cloud