Terraform-Konfiguration erstellen

Wenn Sie Service Catalog-Lösungen für Ihre Organisation auswählen, können Sie eine Terraform-Konfiguration oder config erstellen, die Ihre Nutzer mit Terraform bereitstellen. Nachdem Sie die Konfiguration erstellt haben, können Sie sie für Nutzer freigeben, indem Sie sie catalogs zuweisen.

In dieser Anleitung verwenden Sie Cloud Build, um Terraform-Befehle in der neuesten Version des Terraform-Docker-Images auszuführen. Mit Cloud Storage speichern und Verwalten Sie Terraform-Ressourcen wie Module und Statusdateien.

Ressourcen und Anleitungen zur Verwendung von Terraform finden Sie unter Terraform mit Google Cloud verwenden.

Hinweis

Konfigurationsdateien in Cloud Storage hochladen

Sie verwenden Cloud Storage, um Ihre Terraform-Konfigurationsdateien für Service Catalog zu verwalten.

Cloud Storage-Bucket erstellen

Erstellen Sie zum Einrichten von Cloud Storage einen Bucket in demselben Projekt, in dem Sie Service Catalog für Ihre Organisation aktiviert haben:

  1. Wechseln Sie in der Google Cloud Console zur Cloud Storage-Seite Buckets.

    Zur Seite „Buckets“

  2. Klicken Sie auf Bucket erstellen.
  3. Geben Sie auf der Seite Bucket erstellen die Bucket-Informationen ein. Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.
    • Geben Sie unter Bucket benennen einen Namen ein, der den Anforderungen für Bucket-Namen entspricht.
    • Gehen Sie unter Speicherort für Daten auswählen folgendermaßen vor:
      • Wählen Sie eine Option für Standorttyp aus.
      • Wählen Sie eine Standort-Option aus.
    • Wählen Sie unter Standardspeicherklasse für Ihre Daten auswählen eine Speicherklasse aus.
    • Wählen Sie unter Zugriffssteuerung für Objekte auswählen eine Option für die Zugriffssteuerung aus.
    • Geben Sie für Erweiterte Einstellungen (optional) eine Verschlüsselungsmethode, eine Aufbewahrungsrichtlinie oder Bucket-Labels an.
  4. Klicken Sie auf Erstellen.

Objektversionierung aktivieren

Sie müssen die Objektversionsverwaltung für Ihren Bucket verwenden, um Ihre Terraform-Konfiguration vor dem Löschen oder Überschreiben zu schützen. Informationen zum Aktivieren der Objektversionsverwaltung finden Sie in der Cloud Storage-Dokumentation unter Objektversionsverwaltung verwenden.

Zugriff auf Ihren Bucket gewähren

Wenn Nutzer in Ihrer Organisation die Konfiguration bereitstellen, muss ihr Cloud Build-Dienstkonto Lesezugriff auf Ihren Bucket haben. Wenn Ihr Bucket in demselben Cloud-Projekt gespeichert ist, in dem Nutzer die Konfiguration bereitstellen, hat das Dienstkonto bereits Zugriff.

Wenn Ihre Nutzer die Konfiguration in einem anderen Cloud-Projekt bereitstellen, gewähren Sie den Zugriff auf den Bucket mit einer der folgenden Methoden:

  • Weisen Sie den Cloud Build-Dienstkonten Ihrer Nutzer die Rolle Storage-Objekt-Betrachter (roles/storage.objectViewer) zu oder weisen diese einer Google Cloud-Ressource zu, in der Ihre Nutzer Terraform-Konfigurationen bereitstellen, z. B. ein Projekt, einen Ordner oder eine Organisation.

  • Verwenden Sie eine Access Control List (ACL), um den Zugriff auf den Bucket zu verwalten.

Weitere Informationen zum Verwalten des Zugriffs auf Buckets finden Sie in der Übersicht über die Zugriffssteuerung von Cloud Storage.

Terraform-Modul erstellen und hochladen

Nachdem Sie den Cloud Storage-Bucket eingerichtet haben, müssen Sie ein Terraform-Modul erstellen und hochladen, das ein Container aller Ihrer Konfigurationsdateien ist. Service Catalog verwendet das Modul, um automatisch eine JSON-Schemadatei zu generieren, mit der die Variablen Ihrer Konfiguration definiert werden.

Wenn Sie Module außerhalb des aktuellen Verzeichnisses aufrufen, verwenden Sie den Remotepfad anstelle eines relativen Pfads. Verwenden Sie beispielsweise statt source = "../../" source = "GoogleCloudPlatform/cloud-run/google".

Module für gängige Google Cloud-Anwendungsfälle finden Sie im Cloud Foundation Toolkit.

Das folgende Codebeispiel zeigt die Terraform-Konfigurationsdatei main.tf:


variable "machine_type" {
  type    = string
  default = "n1-standard-1"
}

variable "zone" {
  type    = string
  default = "us-central1-a"
}

variable "deployment_identifier" {
  description = "The unique name for your instance"
  type        = string
}

resource "google_compute_instance" "default" {
  name         = "vm-${var.deployment_identifier}"
  machine_type = var.machine_type
  zone         = var.zone

  boot_disk {
    device_name = "boot"
    auto_delete = true
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }

  network_interface {
    network = "default"
    access_config {
      // Ephemeral IP
    }
  }
}

Komprimieren Sie die Dateien nach dem Erstellen des Moduls in einer ZIP-Datei. Prüfen Sie, ob das Modul im Stammverzeichnis der ZIP-Datei gespeichert ist.

Führen Sie den folgenden Befehl aus, um das Modul beim Komprimieren der Terraform-Dateien richtig zu speichern: zip solution.zip file1.tf file2.tf file3.tf

Laden Sie dann die ZIP-Datei in Ihren Bucket hoch. Eine Anleitung zum Hochladen der ZIP-Datei finden Sie in der Cloud Storage-Dokumentation unter Objekte hochladen.

Konfiguration in Service Catalog erstellen

Nachdem Sie einen Cloud Storage-Bucket mit Ihrem Terraform-Modul eingerichtet haben, erstellen Sie eine Service Catalog-Lösung, die den Bucket enthält.

So erstellen Sie die Terraform-Konfiguration als Service Catalog-Lösung:

  1. Rufen Sie in der Cloud Console die Seite Lösungen für den Service Catalog-Administrator auf.
    Zur Seite „Lösungen“

  2. Klicken Sie auf Auswählen, um das Google Cloud-Projekt auszuwählen.

  3. Klicken Sie auf Lösung erstellen. Wählen Sie aus der Drop-down-Liste Terraform-config erstellen aus.

  4. Geben Sie einen Namen, eine Beschreibung und eine Kurzbeschreibung ein. Die Kurzinfo ist eine kurze Beschreibung einer Lösung, die Nutzer beim Suchen in Service Catalog sehen.

  5. Geben Sie im Feld Link zu Terraform-Konfiguration den Link zum Cloud Storage-Bucket an, der die ZIP-Datei für das Terraform-Modul enthält, z. B. gs://my-terraform-bucket/my-zip-file.zip.

  6. Optional können Sie ein Symbol für die Lösung hochladen. Die empfohlenen Abmessungen für ein Symbol sind 80 x 80 Pixel.

  7. Geben Sie optional einen Supportlink und Kontaktdaten für den Ersteller ein.

  8. Fügen Sie optional einen Link zur Dokumentation für die Lösung hinzu.

  9. Wählen Sie die Terraform-Version aus, die Sie zum Bereitstellen der Lösung verwenden möchten.

  10. Klicken Sie auf ERSTELLEN.

Die Lösung wird erstellt und wird auf der Admin-Seite Service Catalog-Lösungen angezeigt.

Der folgende Screenshot zeigt, wie eine Terraform-Konfiguration erstellt wird:

Terraform-Konfiguration erstellen

Weitere Informationen