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 namens Anbieter, über die Sie mit Cloud-Anbietern und anderen APIs interagieren können. Mit dem Terraform-Anbieter für Google Cloud können Sie Google Cloud-Ressourcen, einschließlich Cloud Build, bereitstellen und verwalten.

Funktionsweise von Terraform

Terraform hat eine deklarative und 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 sie über die 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 die Bereitstellung der Infrastruktur beschreibt. 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 überprüfen und bei Bedarf Änderungen vornehmen.
  3. Sie führen den Befehl terraform apply aus, der folgende Aktionen ausführt:
    1. Die Infrastruktur wird anhand Ihres Ausführungsplans bereitgestellt. Dazu werden im Hintergrund die entsprechenden Cloud Build APIs aufgerufen.
    2. Dabei wird eine Terraform-Zustandsdatei erstellt. Dabei handelt es sich um eine JSON-Datei, mit der die Ressourcen in der Konfigurationsdatei den Ressourcen in der realen Infrastruktur zugeordnet werden. Terraform verwendet diese Datei, um den neuesten Status Ihrer Infrastruktur zu speichern und um zu bestimmen, wann Ressourcen erstellt, aktualisiert und gelöscht werden sollen.
    3. Wenn Sie terraform apply ausführen, verwendet Terraform die Zuordnung in der Statusdatei, um die vorhandene Infrastruktur mit dem Code zu vergleichen und bei Bedarf Aktualisierungen vorzunehmen:
      • Wenn ein Ressourcenobjekt in der Konfigurationsdatei definiert ist, aber in der Statusdatei nicht vorhanden ist, wird es von Terraform erstellt.
      • Wenn die Statusdatei ein Ressourcenobjekt enthält, das jedoch eine andere Konfiguration als die Konfigurationsdatei hat, aktualisiert Terraform die Ressource entsprechend Ihrer Konfigurationsdatei.
      • Wenn ein Ressourcenobjekt in der Statusdatei mit Ihrer 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 und Anleitungen für Cloud Build aufgeführt:

    Leitfaden Details
    Verbindung zu einem GitHub-Repository herstellen In dieser Anleitung wird erläutert, wie Sie ein GitHub-Repository mithilfe von Terraform mit Cloud Build verbinden.
    In Compute Engine bereitstellen In dieser Anleitung wird erläutert, wie Sie mit Cloud Build und Terraform Blau/Grün-Bereitstellungen ohne Ausfallzeiten in verwalteten Compute Engine-Instanzgruppen (MIGs) ausführen.

    Terraform-Module und -Blueprints für Cloud Build

    Mit 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, die eine logische Abstraktion von Terraform-Ressourcen erstellt. Ein Blueprint ist ein Paket aus bereitstellbaren und wiederverwendbaren Modulen sowie eine Richtlinie, die eine bestimmte Lösung implementiert und dokumentiert.

    In der folgenden Tabelle sind alle Module und Blueprints für Cloud Build aufgeführt:

    Modul oder Entwurf 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 Links zur Sicherheit beschrieben werden.
    terraform-google-bootstrap Dieses Modul hilft beim Bootstrapping einer Google Cloud-Organisation und erstellt alle erforderlichen Ressourcen und Berechtigungen für die Verwendung des Cloud Foundation Toolkit (CFT). Für Nutzer, die Cloud Build und Cloud Source Repositories für Grundlagencode verwenden möchten, enthält dieses Modul ein Submodul, das alle erforderlichen Ressourcen durch Bootstrapping bereitstellt.

    Terraform-Ressourcen für Cloud Build

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

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

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

    Nächste Schritte