Grundlage mit Terraform bereitstellen, das über die Console heruntergeladen wurde

Mit dem Einrichtungsleitfaden für die Cloud-Grundlage in der Google Cloud Console können Unternehmensadministratoren eine unternehmensfähige Google Cloud-Grundlage über eine interaktive Benutzeroberfläche konfigurieren und direkt über die Google Cloud Console bereitstellen oder als Terraform herunterladen.

Administratoren können eine Organisationseinheit, Nutzer und Gruppen konfigurieren, ein Rechnungskonto verknüpfen oder einrichten sowie Ressourcenhierarchie (Ordner und Projekte), IAM-Richtlinien, ein anfängliches Netzwerk sowie zentralisiertes Logging und Monitoring konfigurieren.

Wenn Kunden ihre Konfiguration als Terraform herunterladen, generiert die Console eine Terraform-Datei für die spätere Bereitstellung. Diese Anleitung erläutert das Bereitstellen der heruntergeladenen Terraform-Datei und berücksichtigt alle zuvor bereitgestellten Infrastrukturressourcen.

Hinweis

Lesen Sie die Best Practices für die Verwendung von Terraform. Dort finden Sie Richtlinien für eine effektive Entwicklung mit Terraform für Teammitglieder und Workstreams.

Wenn Sie die Grundlagenkonfiguration bereits durch Klicken auf die Schaltfläche „Bereitstellen“ in der Console bereitgestellt haben und jetzt eine heruntergeladene Terraform-Konfiguration mit Ihrer eigenen Pipeline bereitstellen möchten, müssen Sie Folgendes tun:

  • Laden Sie die von der Console generierte Terraform-Zustandsdatei herunter.
  • Fügen Sie die heruntergeladene Zustandsdatei in Ihren eigenen Pipelineprozess ein.

Weitere Informationen finden Sie unter Heruntergeladene Terraform nach der Bereitstellung über die Console bereitstellen.

Terraform mit Cloud Shell bereitstellen

Cloud Shell ist in Terraform vorinstalliert und bereits authentifiziert, sodass Sie schnell loslegen können.

  1. Klicken Sie im Einrichtungsleitfaden in der Console auf Als Terraform herunterladen und speichern Sie die Konfiguration.
  2. Öffnen Sie Cloud Shell.
  3. Erstellen Sie in Cloud Shell ein Verzeichnis und rufen Sie es auf:

    mkdir cloud-foundation-example && cd cloud-foundation-example
    
  4. Laden Sie die Terraform-Konfiguration hoch, die Sie in Schritt 1 heruntergeladen haben.

    Wählen Sie im Cloud Shell-Menü Mehr die Option Hochladen aus und klicken Sie dann auf Dateien auswählen, um die Terraform-Konfiguration auszuwählen. Legen Sie als Zielverzeichnis den Ordner fest, den Sie im vorherigen Schritt erstellt haben, und klicken Sie auf Hochladen.

  5. Prüfen Sie, ob Sie sich im Verzeichnis cloud-foundation-example befinden.

  6. Erstellen Sie einen Cloud Storage-Bucket zum Speichern des Remote-Zustands von Terraform. Über einen Remote-Zustand kann Terraform Objektspeicher wie Cloud Storage verwenden, um Zustandsinformationen zu Ihrer von Terraform verwalteten Infrastruktur zu speichern. Diese Konfiguration bietet Vorteile wie Teamdelegation und Zustandssperren.

    Führen Sie den folgenden Befehl aus, um den Cloud Storage-Bucket zu erstellen:

    gsutil mb gs://tf-state-PROJECT_ID
    
  7. Definieren Sie eine Terraform-Backend-Konfiguration in einer backend.tf-Datei und ersetzen Sie PROJECT_ID entsprechend der Projekt-ID, die Sie im vorherigen Schritt verwendet haben. Weitere Informationen finden Sie unter Terraform-Zustand in Cloud Storage speichern.

    # backend.tf
    terraform {
          backend "gcs" {
            bucket  = "tf-state-PROJECT_ID"
            prefix  = "terraform/state"
          }
    }
    
  8. Führen Sie terraform init aus. Durch diesen Vorgang wird Ihr Arbeitsverzeichnis initialisiert, das die Terraform-Konfigurationsdateien und das Backend enthält.

  9. Führen Sie terraform plan aus, um die Ressourcen anzuzeigen, die Terraform erstellt. Beispielausgabe:

    ...
    Plan: 6 to add, 0 to change, 0 to destroy.
    Note: You didn't use the -out option to save this plan, so Terraform can't
    guarantee to take exactly these actions if you run "terraform apply" now.
    

  10. Wenden Sie die Konfiguration an. Führen Sie dazu terraform apply aus. Dadurch werden Ihre Ressourcen in Google Cloud bereitgestellt. Geben Sie bei Aufforderung yes ein.

  11. Rufen Sie die Google Cloud Console auf, um zu prüfen, ob Ihre Ressourcen jetzt in Ihrem Konto oder Projekt bereitgestellt werden.

Terraform mit Cloud Shell noch einmal bereitstellen

Terraform speichert Informationen zu bereitgestellten Ressourcen in der Terraform-Statusdatei. Wenn Sie die vorherigen Schritte zum Bereitstellen Ihrer Konfiguration ausgeführt haben, empfehlen wir Ihnen dringend, dasselbe Backend wiederzuverwenden, um Ressourcen, die durch die neue exportierte Konfiguration definiert wurden, automatisch zu erkennen, zu bereinigen und zu aktualisieren.

  1. Klicken Sie im Einrichtungsleitfaden in der Console auf Als Terraform herunterladen und speichern Sie die Konfiguration.
  2. Öffnen Sie Cloud Shell.
  3. Erstellen Sie in Cloud Shell ein neues Verzeichnis und rufen Sie es auf:
    mkdir cloud-foundation-example-redeploy && cd cloud-foundation-example-redeploy
    
  4. Laden Sie die Terraform-Konfiguration hoch, die Sie in Schritt 1 heruntergeladen haben.

    Wählen Sie im Cloud Shell-Menü Mehr die Option Hochladen aus und klicken Sie dann auf Dateien auswählen, um die Terraform-Konfiguration auszuwählen. Legen Sie als Zielverzeichnis den Ordner fest, den Sie im vorherigen Schritt erstellt haben, und klicken Sie auf Hochladen.

  5. Prüfen Sie, ob Sie sich im Verzeichnis cloud-foundation-example-redeploy befinden.

  6. Prüfen Sie, ob der zuvor erstellte Cloud Storage-Backend-Bucket und die zuvor erstellte Statusdatei vorhanden sind.

    gsutil ls gs://tf-state-PROJECT_ID/terraform/state/
    
    Beispielausgabe:
    gs://tf-state-PROJECT_ID/terraform/state/default.tfstate
    

  7. Definieren Sie eine Terraform-Backend-Konfiguration in einer backend.tf-Datei, indem Sie denselben Bucket und dasselbe Präfix wiederverwenden.

    # backend.tf
    terraform {
          backend "gcs" {
            bucket  = "tf-state-PROJECT_ID"
            prefix  = "terraform/state"
          }
    }
    
  8. Führen Sie terraform init aus. Durch diesen Vorgang wird Ihr Arbeitsverzeichnis initialisiert, das die Terraform-Konfigurationsdateien und das Backend enthält.

  9. Führen Sie terraform plan aus, um die Ressourcen anzuzeigen, die Terraform erstellt, ändert oder löscht. Beispielausgabe:

    ...
    Plan: 2 to add, 3 to change, 4 to destroy.
    Note: You didn't use the -out option to save this plan, so Terraform can't
    guarantee to take exactly these actions if you run "terraform apply" now.
    

  10. Wenden Sie die Konfiguration an. Führen Sie dazu terraform apply aus. Dadurch werden Ihre Ressourcen in Google Cloud bereitgestellt. Geben Sie bei Aufforderung yes ein.

  11. Rufen Sie die Google Cloud Console auf, um zu prüfen, ob Ihre Ressourcen jetzt in Ihrem Konto oder Projekt bereitgestellt werden.

Heruntergeladenes Terraform nach der Bereitstellung über die Console bereitstellen

Wenn Sie die Grundlagenkonfiguration bereits über die Schaltfläche „Bereitstellen“ in der Console bereitgestellt haben, wurde eine Terraform-Zustandsdatei generiert. Wenn Sie die Terraform-Konfiguration jetzt zur Bereitstellung mit Ihrer eigenen Pipeline herunterladen möchten, müssen Sie die während der Bereitstellung der Console generierte Terraform-Zustandsdatei einbeziehen.

So laden Sie die Zustandsdatei herunter und verwenden sie:

  1. Führen Sie die folgenden Schritte unter Terraform-Statusdatei verwalten aus, um die Terraform-Statusdatei herunterzuladen:

    1. Bereitstellung sperren.
    2. Statusdatei herunterladen.
    3. Bereitstellung entsperren.
  2. Informationen zum Verschieben der heruntergeladenen Statusdatei in einen Cloud Storage-Bucket finden Sie unter Terraform-Zustand in einem Cloud Storage-Bucket speichern.

  3. Informationen zum erneuten Bereitstellen der Terraform-Konfiguration finden Sie unter Terraform mit Cloud Shell noch einmal bereitstellen.

Fehlerbehebung bei Terraform-Bereitstellungen

Terraform mit vorhandenen Ressourcen bereitstellen

Wenn die heruntergeladene Terraform-Konfiguration versucht, bereits vorhandene Ressourcen zu erstellen, wird Terraform mit dem Fehlercode 409 beendet. Zum Beheben dieser Fehler können Sie die Ressource mit der Google Cloud Console oder der gcloud CLI löschen und dann die Terraform-Konfiguration noch einmal anwenden. Wenn diese Ressourcen kritisch sind und nicht gelöscht werden können, können Sie auch Ressourcen in den Terraform-Zustand importieren.

Infrastruktur als Code mit Terraform, Cloud Build und GitOps verwalten

Eine ausführliche Anleitung finden Sie hier. Diese Option richtet sich an Plattformadministratoren und -betreiber, die nach einer Strategie suchen, um vorhersehbare und wiederholte Änderungen an der Infrastruktur vorzunehmen. In diesem Leitfaden wird davon ausgegangen, dass Sie mit Google Cloud, Linux und GitHub vertraut sind. Für diese Option müssen folgende Schritte ausgeführt werden:

  1. GitHub-Repository einrichten
  2. Terraform so konfigurieren, dass der Status in einem Cloud Storage-Bucket gespeichert wird
  3. Berechtigungen für Cloud Build-Dienstkonto erteilen
  4. Cloud Build mit GitHub-Repository verbinden
  5. Umgebungskonfiguration in einem Feature-Branch ändern
  6. Änderungen an der Entwicklungsumgebung übernehmen
  7. Änderungen an der Produktionsumgebung übernehmen