VM-Image für die Terraform-Bereitstellung konfigurieren

In diesem Artikel wird beschrieben, wie Sie die Konfiguration abschließen und das VM-Image einreichen. mit Terraform bereitstellen.

Festlegen, wie Ihr Bereitstellungspaket erstellt wird

Wir empfehlen Ihnen die geführte Konfiguration im Producer Portal, um Erstellen Sie Ihr Bereitstellungspaket direkt in der Google Cloud Console.

Die geführte Konfiguration unterstützt einfache VM-Produkte, z. B. eine einzelne VM. Bereitstellungen mit einfachen Firewallregeln, unterstützt jedoch einige komplexe wie Bereitstellungen mit mehreren VMs und Nicht-Computing-Ressourcen. Wenn Sie Funktionen benötigen, die von der geführten Konfiguration nicht unterstützt werden, können Sie die Option „Manuelle Konfiguration“ verwenden, um entweder Ihr Bereitstellungspaket zu erstellen oder ein vorhandenes Paket anzupassen, indem Sie zusätzliche Funktionen hinzufügen.

Zwischen geführter und manueller Konfiguration wechseln

Wenn Sie die geführte Konfiguration im Producer Portal verwenden und später wechseln Sie zur manuellen Konfiguration des Bereitstellungspakets, klicken Sie auf Zur manuellen Konfiguration

Geführte Konfiguration abschließen

Um die Konfiguration und das Senden eines einfachen Bereitstellungspakets mit der Führen Sie in der Google Cloud Console die folgenden Schritte aus:

  1. Gehen Sie im Producer Portal zum Abschnitt Bereitstellungspaket.

  2. Klicken Sie unter Terraform-Konfiguration neben dem Eingabefeld Cloud Storage-Bucket auf Durchsuchen.

    Wenn Sie bereits einen Cloud Storage-Bucket erstellt haben, wählen Sie ihn aus hier.

    Wenn Sie keinen Cloud Storage-Bucket haben, klicken Sie auf das Symbol mit der Beschriftung Neuen Bucket erstellen Wenn Sie einen neuen Bucket erstellen, geschieht Folgendes:

    • Sie wählen einen Namen für den Bucket aus.

    • Sie geben an, in welchen Regionen die Daten im Bucket gespeichert werden.

    • Sie geben die Speicherklasse für Ihre Daten an.

    • Legen Sie fest, welcher Detaillierungsgrad auf die IAM-Berechtigungen (Identity and Access Management) für die Daten des Buckets.

    • Optionale erweiterte Einstellungen konfigurieren, z. B. Verschlüsselung oder Daten Aufbewahrungsrichtlinien.

  3. Achten Sie darauf, dass die Objektversionsverwaltung für Ihren Cloud Storage-Bucket aktiviert ist.

  4. Um die Bucket-Einstellungen zu speichern und mit der Konfiguration der Bereitstellung fortzufahren auf Konfigurieren.

  5. Unter Maschinentyp auswählen müssen Sie eine Standardzone angeben. Mindestmaschinentyp und Standardmaschinentyp für die VM das Produkt, die Größe und den Typ des Bootlaufwerks.

  6. Unter Betriebssystem angeben müssen Sie den Namen und die Version angeben. des Betriebssystems, das Ihr VM-Image verwendet, sowie die Versionsnummer der VM Bild.

  7. Optional können Sie unter VM-Zugriff einrichten den Standort und den Administrator angeben. URLs sowie einen Nutzernamen und ein Passwort, über die Nutzer auf VM nach der Bereitstellung.

  8. Optional können Sie unter Netzwerk konfigurieren Einstellungen für IP-Weiterleitung und konfigurieren Sie Firewallregeln.

  9. Optional können Sie unter Nächste Schritte definieren Anweisungen für um sie bei den ersten Schritten mit Ihrem Produkt zu unterstützen. Diese Anleitung ist für sie sichtbar, nachdem sie Ihr Produkt.

  10. Nachdem Sie die vorherigen Schritte ausgeführt haben, klicken Sie auf Erstellen, um Ihr Bereitstellungspaket zu erstellen.

    Wenn Sie später weitere Änderungen an Ihrem Bereitstellungspaket vornehmen müssen, können Sie auf Bearbeiten klicken, um Änderungen vorzunehmen, und dann auf Generieren klicken, um das Bereitstellungspaket mit den angewendeten Änderungen neu generieren.

  11. Validiere das Bereitstellungspaket im Producer Portal.

  12. Nachdem die Validierung Ihres Bereitstellungspakets durch Cloud Marketplace klicken Sie auf Publish (Veröffentlichen), um mit dem Testen Ihrer Bereitstellung zu beginnen. Paket.

Manuelle Konfiguration abschließen

In diesem Abschnitt wird erläutert, wie Sie mit der Option für die manuelle Konfiguration ein Bereitstellungspaket und reichen Sie das Paket zur Überprüfung ein.

Geben Sie an, ob das Standardmodul oder ein benutzerdefiniertes Terraform-Modul verwendet werden soll

Sie können festlegen, ob Ihre Kunden beim Bereitstellen Ihres Produkts das Standard- oder ein benutzerdefiniertes Terraform-Modul verwenden sollen.

Wenn Sie das Terraform-Standardmodul verwenden, bietet Google Cloud Ihren Kunden automatisch generierten Terraform-Code zur Verfügung zu stellen, mit dem sie für Ihr Produkt.

Wenn Sie ein benutzerdefiniertes Terraform-Modul verwenden, müssen Sie Ihrem Kunden eigene Terraform-Vorlagen zur Verfügung stellen. Sie können diese Vorlagen in einer Form, die Kunden über die Befehlszeile bereitstellen können, oder mit zusätzlichen Metadaten, die es Kunden ermöglichen, Module direkt aus Cloud Marketplace

Angeben, ob Ihre Kunden die standardmäßige oder ein benutzerdefiniertes Terraform verwenden sollen und für benutzerdefinierte Terraform-Module, wie Ihre Kunden die Bereitstellung führen Sie die folgenden Schritte aus:

  1. Gehen Sie im Producer Portal zum Abschnitt Bereitstellungspaket.

  2. Wählen Sie unter Terraform-Konfiguration unter Typ die Option Standard, Benutzerdefiniert (Bereitstellung über die Befehlszeile) oder Benutzerdefiniert (Bereitstellung über die Benutzeroberfläche) aus.

Anforderungen an benutzerdefinierte Terraform-Module

Wenn Sie sich für die Verwendung benutzerdefinierter Terraform-Module entscheiden, muss Ihr benutzerdefiniertes Modul die folgenden Anforderungen:

  • Das benutzerdefinierte Modul muss ein Modul enthalten, das Cloud Marketplace verwenden kann um zu überprüfen, ob sie die Anforderungen erfüllt. Weitere Informationen finden Sie unter Prüfen, ob Ihr Modul die Überprüfung besteht.

  • Das Modul muss eine Variable mit dem Namen project_id haben, in der das Projekt gespeichert wird ID, mit der Ihre Kunden das Modul bereitstellen.

  • Sie müssen Verweise auf die Namen Ihrer Images als Terraform angeben. Variablen mit dem Format projects/PROJECT_NAME/global/images/IMAGE_NAME Der Wert von default muss auf den Namen Ihres VM-Images festgelegt werden, sodass der Cloud Marketplace-eigene Kopie des Images kann im wenn Ihr VM-Produkt veröffentlicht wird.

  • Ihr Modul darf nicht von externen Modulen abhängen, die nicht im Paket enthalten sind.

  • Ihr Modul darf nur die folgenden zugelassenen Anbieter verwenden:

    • archive
    • cloud-init
    • dns
    • google
    • google-beta
    • http
    • null
    • random
    • time
    • tls

Ein Beispiel für ein benutzerdefiniertes Modul, das diesen Anforderungen entspricht, finden Sie in der Beispiel für ein benutzerdefiniertes Terraform-Modul

Zusätzliche Anforderungen für benutzerdefinierte Terraform-Module für die Bereitstellung in der UI

Wenn Ihr benutzerdefiniertes Modul die Bereitstellung über die UI unterstützt, muss es folgende Anforderungen erfüllen Zusätzliche Anforderungen:

  • Das Modul muss eine Variable mit dem Namen goog_cm_deployment_name enthalten. Cloud Marketplace verwendet diese Variable, um die Bereitstellungen auf ihrer Bereitstellungsseite. Sie sollten diese Variable verwenden, Konflikte bei der Ressourcenbenennung zwischen mehreren Bereitstellungen in einem Projekt. Ein Beispiel finden Sie unter goog_cm_deployment_name im Beispiel für ein benutzerdefiniertes Terraform-Modul.

  • In der Datei metadata.display.yaml müssen Sie ET_GCE_DISK_IMAGE als xGoogleProperty-Typ für alle Bildvariablen. Ein Beispiel: siehe metadata.display.yaml im Beispiel für ein benutzerdefiniertes Terraform-Modul

  • Wenn Ihr Produkt Images für mehrere VMs oder Images enthält, die mehrere CPUs unterstützen Architekturen hinzugefügt haben, müssen Sie enumValueLabels hinzufügen, damit Ihre Kunden das gewünschte VM-Image aus. Ein Beispiel finden Sie in der Beispiel für ein benutzerdefiniertes Terraform-Modul

  • Ihr Modul darf nicht von der Unterstützung für Terraform-Bereitsteller abhängen.

Zusätzliche Schritte für benutzerdefinierte Terraform-Module

Wenn Sie benutzerdefinierte Terraform-Module ausgewählt haben, müssen Sie die folgenden Schritte ausführen: zusätzliche Schritte zum Konfigurieren des VM-Images für die Bereitstellung:

  1. Gehen Sie im Producer Portal zum Abschnitt Bereitstellungspaket.

  2. Klicken Sie unter Terraform-Konfiguration unter Image-Variablen auf: Variable hinzufügen:

    Um die Terraform-Bereitstellung Ihres Produkts zu aktivieren, müssen Sie die Nutzung von Marketplace-Images aktiviert haben. Cloud Marketplace verwendet die hier hinzugefügte Variable, um den Marketplace-Version Ihres VM-Images, wenn ein Kunde Ihr VM-Image bereitstellt Produkt.

  3. Geben Sie im Textfeld Bildvariable einen Namen für die Variable ein, z. B. „image“.

  4. Legen Sie in Ihrem benutzerdefinierten Terraform-Modul den Standardwert der Variablen fest, den Sie im vorherigen Schritt erstellt haben, in den Namen des VM-Images für Ihr im Format projects/YOUR_PROJECT/global/images/YOUR_IMAGE

  5. Klicken Sie unter Geben Sie den Speicherort Ihres GCS-Objekts an auf Durchsuchen.

    Wenn Sie bereits einen Cloud Storage-Bucket erstellt haben, wählen Sie ihn hier aus.

    Wenn Sie keinen Cloud Storage-Bucket haben, klicken Sie auf das Symbol Neuen Bucket erstellen. Wenn Sie einen neuen Bucket erstellen, geschieht Folgendes:

    • Sie wählen einen Namen für den Bucket aus.

    • Sie geben an, in welchen Regionen die Daten im Bucket gespeichert werden.

    • Sie geben die Speicherklasse für Ihre Daten an.

    • Sie legen fest, welcher Detaillierungsgrad auf die IAM-Berechtigungen (Identity and Access Management) für die Daten des Buckets angewendet wird.

    • Sie konfigurieren optionale erweiterte Einstellungen wie Verschlüsselungs- oder Datenaufbewahrungsrichtlinien.

  6. Achten Sie darauf, dass die Objektversionsverwaltung für Ihren Cloud Storage-Bucket aktiviert ist.

  7. Um die Bucket-Einstellungen zu speichern und mit der Konfiguration der Bereitstellung fortzufahren auf Konfigurieren.

  8. Geben Sie unter Erforderliche Rollen die IAM-Rollen Ihrer Kunden an. Ihr Produkt bereitstellen müssen.

(Nur Bereitstellung über die Benutzeroberfläche) Metadaten für das benutzerdefinierte Terraform-Modul erstellen

Damit Ihr benutzerdefiniertes Modul die Bereitstellung in der Benutzeroberfläche unterstützt, müssen Sie Metadaten, die Cloud Marketplace verwendet, um Ihr Modul korrekt zu parsen und rendern es auf der Benutzeroberfläche für Ihren Kunden.

Zum Erstellen und Hinzufügen dieser Metadaten können Sie die Open Source-Anwendung CFT CLI-Tool Wenn Sie mit CFT Metadaten erstellen und Ihren benutzerdefinierten Modulen hinzufügen möchten, füllen Sie die folgenden Schritten:

  1. Installieren Sie das CFT CLI-Tool. Weitere Informationen finden Sie in der Dokumentation zur CFT CLI Wir empfehlen, den Wert von VERSION auf latest festzulegen. Legen Sie PLATFORM auf einen der folgenden Werte fest:

    • linux

    • windows

    • darwin

  2. Führen Sie dazu diesen Befehl aus:

     cft blueprint metadata -p TF_PACKAGE_PATH -q -d --nested=false
    

    Im vorherigen Befehl stellt das Flag -p einen Pfad für die Terraform-Datei bereit Paket erstellt, generiert das Flag -q Metadaten, ohne dass Informationen zu einem Remote-Repository generiert, generiert das Flag -d die metadata.display.yaml und das Flag --nested=false generiert Metadaten für das Stammmodul. Dabei werden alle Module im Ordner modules/ übersprungen.

Nachdem Sie die vorherigen Schritte abgeschlossen haben, erstellt das CFT CLI-Tool zwei neue Dateien: metadata.yaml und metadata.display.yaml.

Metadaten des benutzerdefinierten Terraform-Moduls anpassen

Cloud Marketplace verwendet die Datei metadata.display.yaml, um die Formular, mit dem Kunden Ihr Produkt über die Benutzeroberfläche bereitstellen. Wenn Sie Passen Sie dieses Formular an. Nachdem Sie die Metadaten erstellt haben, können Sie die Werte die Felder in metadata.display.yaml. Details zu den verfügbaren Anpassungsoptionen finden Sie in der BlueprintUI-Dokumentation oder im BlueprintUI-Schema.

Wir empfehlen, die Erweiterung GooglePropertyExtensions zu verwenden, um die Metadaten zu ändern. Mit GooglePropertyExtensions können Sie Folgendes nutzen: Google Cloud-spezifische Validierungen, z. B. die Durchsetzung, dass Kunden Sie können nur VPC-Netzwerke (Virtual Private Cloud) auswählen, die bereits in ihrem Projekt arbeiten. Ein Beispiel finden Sie in der Beispiel für ein benutzerdefiniertes Terraform-Modul

Metadaten des benutzerdefinierten Moduls validieren

Führen Sie den folgenden Befehl aus, um die Metadaten Ihres benutzerdefinierten Moduls zu validieren:

cft blueprint metadata -p TF_PACKAGE_PATH -v

Im vorherigen Befehl stellt das Flag -p einen Pfad für die Terraform-Datei bereit Paket und das Flag -v validiert alle Metadatendateien unter dem angegebenen Pfad basierend auf den BlueprintMetadata-Schema.

Testen, ob Ihr Modul die Überprüfung besteht

Ihr benutzerdefiniertes Modul besteht die Überprüfung, wenn der folgende Befehl ausgeführt wird erfolgreich:

terraform plan -var project_id=YOUR_PROJECT -var-file marketplace_test.tfvars

Im vorherigen Befehl ist marketplace_test.tfvars eine Terraform-Variablendatei, die nur vom Cloud Marketplace verwendet wird, und zwar ausschließlich für diese Überprüfung des Moduls. Wenn in Ihrer Vorlage Variablen deklariert sind, die keinen Standardwert haben, und Sie keinen Wert für diese Variablen festlegen, wird der Befehl nicht erfolgreich ausgeführt. Damit der Befehl erfolgreich ausgeführt wird, können Sie eine marketplace_test.tfvars-Datei erstellen, um Werte für die in der Vorlage deklarierten Variablen festzulegen. Ein Beispiel für eine marketplace_test.tfvars-Datei finden Sie in der Beispiel für ein benutzerdefiniertes Terraform-Modul

Optional (nur Bereitstellung über die Befehlszeile): Testmodul einschließen

Wenn Ihr benutzerdefiniertes Modul die Bereitstellung über die Befehlszeile unterstützt, können Sie optional Sie enthalten einen Ordner mit dem Namen examples/marketplace_test. Das kann beispielsweise der Fall sein, wenn Ihr Produkt ein separates Testmodul zur Überprüfung der Funktionen enthalten muss. Wenn Sie diesen Ordner hinzufügen, muss Ihr Modul muss der folgende Befehl erfolgreich ausgeführt werden:

terraform -chdir=examples/marketplace_test plan -var project_id=YOUR_PROJECT

Bereitstellung validieren und testen

Nachdem Sie das Bereitstellungspaket erstellt und konfiguriert haben, müssen Sie überprüfen, und testen, bevor das Cloud Marketplace-Team diese prüfen und genehmigen kann. .

  1. Gehen Sie im Producer Portal zum Abschnitt Bereitstellungspaket.

  2. Klicke auf Validieren. Die Validierung kann bis zu zwei Stunden dauern, abgeschlossen ist, und Sie können den Bildschirm währenddessen verlassen.

  3. Klicken Sie nach erfolgreicher Validierung auf Bereitstellungsvorschau. um Ihre Bereitstellung zu testen.

Nächste Schritte

Nachdem Sie Ihre Bereitstellung erfolgreich validiert und getestet haben, können Sie auf Klicken Sie auf Veröffentlichen, um Ihr gesamtes Produkt zur Überprüfung und Veröffentlichung einzureichen. Cloud Marketplace Weitere Informationen finden Sie unter Reichen Sie Ihr Produkt ein.