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 Cloudverwenden.

Hinweise

  • Sie benötigen die folgenden IAM-Rollen (Identity and Access Management):

    • Katalogadministrator ODER Katalogverwaltung für dieGoogle Cloud Organisation, die mit dem Google Cloud Projekt verknüpft ist, für das Service Catalog aktiviert ist. Wenn Sie diese Rolle nicht haben, wenden Sie sich an den Organisationsadministrator, um Zugriff anzufordern.
    • Rolle Storage-Administrator für das Projekt Google Cloud , in dem Sie Ihre Lösung erstellen möchten. Wenn sich Ihre Terraform-Konfiguration in einem anderen Projekt befindet, benötigen Sie auch die Rolle „Storage-Administrator“ für das Projekt, das Ihre Terraform-Konfiguration enthält.
    • Cloud Build-Bearbeiter für das Google Cloud -Projekt, in dem Sie die Lösung erstellen möchten.

    Wenn Sie Ihr eigenes Dienstkonto verwenden möchten, benötigen Sie auch die Rolle Dienstkontonutzer für das Google Cloud -Projekt, das das Dienstkonto enthält, das Sie verwenden möchten.

    Wenn Sie diese Rollen nicht haben, wenden Sie sich an den Organisationsadministrator, um Zugriff anzufordern.

  • Wenn Sie Ihr eigenes Dienstkonto verwenden möchten, muss es die folgenden IAM-Rollen haben:

    • Rolle Storage-Administrator für das Projekt Google Cloud , in dem Sie Ihre Lösung erstellen möchten. Wenn sich Ihre Terraform-Konfiguration in einem anderen Projekt befindet, muss Ihr Dienstkonto auch die Rolle Storage-Objekt-Betrachter für das Projekt haben, das die Terraform-Konfiguration enthält.
    • Logs Writer für dasGoogle Cloud -Projekt, in dem Sie Ihre Lösung erstellen möchten.

    Wenn Sie diese Rollen nicht haben, wenden Sie sich an den Organisationsadministrator, um Zugriff anzufordern.

  • Richten Sie Cloud Build in dem Projekt ein, in dem Sie die Konfiguration erstellen:

    1. Enable the Cloud Build API.

      Enable the API

      Durch das Aktivieren der API wird automatisch ein Cloud Build-Dienstkonto erstellt, das Sie im folgenden Schritt verwenden.
    2. Rufen Sie die Seite Cloud Build auf.
    3. Wählen Sie im linken Bereich Einstellungen aus.
    4. Verwenden Sie das Dienstkonto, das im Abschnitt E-Mail-Adresse des Dienstkontos angegeben ist.
    5. Wenn Sie kein eigenes Dienstkonto verwenden, weisen Sie dem Dienstkonto die folgenden IAM-Rollen zu. Eine Anleitung zum Zuweisen von Rollen finden Sie unter Zugriff für das Cloud Build-Dienstkonto konfigurieren.

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. In the Google Cloud console, go to the Cloud Storage Buckets page.

    Go to Buckets

  2. Click Create.
  3. On the Create a bucket page, enter your bucket information. To go to the next step, click Continue.
    1. In the Get started section, do the following:
      • Enter a globally unique name that meets the bucket naming requirements.
      • To add a bucket label, expand the Labels section (), click Add label, and specify a key and a value for your label.
    2. In the Choose where to store your data section, do the following:
      1. Select a Location type.
      2. Choose a location where your bucket's data is permanently stored from the Location type drop-down menu.
      3. To set up cross-bucket replication, select Add cross-bucket replication via Storage Transfer Service and follow these steps:

        Set up cross-bucket replication

        1. In the Bucket menu, select a bucket.
        2. In the Replication settings section, click Configure to configure settings for the replication job.

          The Configure cross-bucket replication pane appears.

          • To filter objects to replicate by object name prefix, enter a prefix that you want to include or exclude objects from, then click Add a prefix.
          • To set a storage class for the replicated objects, select a storage class from the Storage class menu. If you skip this step, the replicated objects will use the destination bucket's storage class by default.
          • Click Done.
    3. In the Choose how to store your data section, do the following:
      1. Select a default storage class for the bucket or Autoclass for automatic storage class management of your bucket's data.
      2. To enable hierarchical namespace, in the Optimize storage for data-intensive workloads section, select Enable hierarchical namespace on this bucket.
    4. In the Choose how to control access to objects section, select whether or not your bucket enforces public access prevention, and select an access control method for your bucket's objects.
    5. In the Choose how to protect object data section, do the following:
      • Select any of the options under Data protection that you want to set for your bucket.
        • To enable soft delete, click the Soft delete policy (For data recovery) checkbox, and specify the number of days you want to retain objects after deletion.
        • To set Object Versioning, click the Object versioning (For version control) checkbox, and specify the maximum number of versions per object and the number of days after which the noncurrent versions expire.
        • To enable the retention policy on objects and buckets, click the Retention (For compliance) checkbox, and then do the following:
          • To enable Object Retention Lock, click the Enable object retention checkbox.
          • To enable Bucket Lock, click the Set bucket retention policy checkbox, and choose a unit of time and a length of time for your retention period.
      • To choose how your object data will be encrypted, expand the Data encryption section (), and select a Data encryption method.
  4. Click Create.

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 im selben Google Cloud Projekt gespeichert ist, in dem Nutzer die Konfiguration bereitstellen, hat das Dienstkonto bereits Zugriff.

Wenn Ihre Nutzer die Konfiguration in einem anderenGoogle 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 Sie 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 Remote-Pfad anstelle eines relativen Pfads. Verwenden Sie beispielsweise source = "GoogleCloudPlatform/cloud-run/google" anstelle von source = "../../".

Module für gängige Google Cloud Anwendungsfälle finden Sie unter Terraform-Blueprints und -Module für Google Cloud.

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. Das Modul muss im Stammverzeichnis der ZIP-Datei gespeichert sein.

Damit das Modul richtig gespeichert wird, wenn Sie Ihre Terraform-Dateien zippen, führen Sie den folgenden Befehl aus: none 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 Google Cloud Console die Admin-Seite Lösungen für Service Catalog 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-Konfiguration 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. Optional können Sie ein eigenes Dienstkonto angeben, indem Sie das Kästchen neben Eigenes Dienstkonto auswählen oder eingeben anklicken. Wenn sich Ihr Dienstkonto im selben Google Cloud Projekt befindet, in dem Sie Ihre Lösung erstellen, wählen Sie Dienstkonto aus dem aktuellen Projekt auswählen aus und wählen Sie Ihr Dienstkonto aus dem Drop-down-Menü aus. Wenn sich Ihr Dienstkonto in einem anderen Google Cloud Projekt als Ihre Lösung befindet, wählen Sie E‑Mail-Adresse eines Dienstkontos aus einem beliebigen Projekt eingeben aus und geben Sie die E‑Mail-Adresse Ihres Dienstkontos ein.

  11. 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

Nächste Schritte