Cloud Build-Ressourcen mit Terraform bereitstellen

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 verwenden, um Google Cloud -Ressourcen wie Cloud Build bereitzustellen und zu verwalten.

Auf dieser Seite erfahren Sie, wie Sie Terraform mit Cloud Build verwenden. Außerdem erhalten Sie eine Einführung in die Funktionsweise von Terraform und einige Ressourcen, die Ihnen den Einstieg in die Verwendung von Terraform mit Google Clouderleichtern. Außerdem finden Sie Links zu Terraform-Referenzdokumenten für Cloud Build, Codebeispiele und Anleitungen zur Verwendung von Terraform zur Bereitstellung von Cloud Build-Ressourcen.

Eine Anleitung für die ersten Schritte mit Terraform für Google Cloudfinden Sie unter Terraform installieren und konfigurieren oder im Schnellstart für Terraform für Google Cloud .

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:

  1. 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.
  2. 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.
  3. Anschließend führen Sie den Befehl terraform apply aus, der die folgenden Aktionen ausführt:

    1. Es stellt Ihre Infrastruktur basierend auf Ihrem Ausführungsplan bereit, indem die entsprechenden Cloud Build APIs im Hintergrund aufgerufen werden.
    2. 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.
    3. 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, aber in der Zustandsdatei nicht vorhanden ist, wird es 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-Ressourcen für Cloud Build

Ressourcen sind die grundlegenden Elemente der Terraform-Sprache. Jeder Ressourcenblock beschreibt ein oder mehrere Infrastrukturobjekte, z. B. virtuelle Netzwerke oder Compute-Instanzen.

In der folgenden Tabelle sind die Terraform-Ressourcen aufgeführt, die für Cloud Build verfügbar sind:

Cloud Build-Dienst Terraform-Ressourcen Datenquellen
Cloud Build v1 google_cloudbuild_trigger
Cloud Build v2 google_cloudbuildv2_connection_iam_policy

Terraform-basierte Anleitungen für Cloud Build

In der folgenden Tabelle sind Terraform-basierte Anleitungen und Tutorials für Cloud Build aufgeführt:

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 dieser Anleitung wird erläutert, wie Sie einen GitHub Enterprise-Host mit Cloud Build über Terraform verbinden.
Verbindung zu einem GitHub Enterprise-Repository herstellen In diesem Leitfaden wird erläutert, wie Sie ein GitHub Enterprise-Repository mithilfe von Terraform mit Cloud Build verbinden.
Mit einem GitLab Enterprise Edition-Host verbinden In diesem Leitfaden wird erläutert, wie Sie einen GitLab Enterprise Edition-Host mithilfe von Terraform mit Cloud Build verbinden.
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 beschrieben, wie Sie ein Bitbucket Data Center-Repository mithilfe von Terraform mit Cloud Build verbinden.
Verbindung zu einem Bitbucket Cloud-Host herstellen In diesem Leitfaden wird erläutert, wie Sie mit Terraform eine Verbindung zwischen einem Bitbucket Cloud-Host und Cloud Build herstellen.
Verbindung zu einem Bitbucket Cloud-Repository herstellen In diesem Leitfaden wird erläutert, wie Sie ein Bitbucket Cloud-Repository mit Cloud Build über Terraform verbinden.
In Compute Engine bereitstellen In diesem Leitfaden wird erläutert, wie Sie mit Cloud Build und Terraform Blau/Grün-Bereitstellungen ohne Ausfallzeiten in Compute Engine-verwalteten Instanzgruppen (Managed Instance Groups, MIGs) durchführen.

Terraform-Module und -Blueprints für Cloud Build

Mithilfe von Modulen und Blueprints können Sie die Bereitstellung und Verwaltung von Google Cloud -Ressourcen in großem Maßstab automatisieren. Ein Modul ist ein wiederverwendbarer Satz von Terraform-Konfigurationsdateien, der eine logische Abstraktion von Terraform-Ressourcen erstellt. Ein Blueprint ist ein Paket aus bereitstellbaren und wiederverwendbaren Modulen und einer Richtlinie, mit der eine bestimmte Lösung implementiert und dokumentiert wird.

In der folgenden Tabelle sind Module und Blueprints zu Cloud Build aufgeführt:

Modul oder Blueprint Details
Sichere CI/CD-Pipeline Mit diesem Modul können Google Cloud Kunden schnell eine sichere CI/CD-Pipeline bereitstellen und viele der Funktionen implementieren, die in Shifting Left on Security beschrieben werden.
terraform-google-bootstrap Dieses Modul hilft beim Einrichten einer Google Cloud Organisation. Dabei werden alle erforderlichen Ressourcen und Berechtigungen erstellt, damit Sie das Cloud Foundation Toolkit (CFT) verwenden können. Für Nutzer, die Cloud Build und Cloud Source Repositories für den Code der Grundlage verwenden möchten, enthält dieses Modul ein Untermodul, das alle erforderlichen Ressourcen initialisiert.

Nächste Schritte