In diesem Artikel wird beschrieben, wie Sie die Konfiguration abschließen und das VM-Image mit Terraform zur Bereitstellung einreichen.
Festlegen, wie Ihr Bereitstellungspaket erstellt wird
Wir empfehlen Ihnen, das Bereitstellungspaket direkt in der Google Cloud Console mit der geführten Konfiguration im Producer Portal zu erstellen.
Die Option für die geführte Konfiguration unterstützt einfache VM-Produkte, z. B. Bereitstellungen für eine einzelne VM mit grundlegenden Firewallregeln, aber nicht einige komplexe Features wie Bereitstellungen mit mehreren VMs und Nicht-Computing-Ressourcen. Wenn Sie Features benötigen, die von der geführten Konfiguration nicht unterstützt werden, können Sie die manuelle Konfigurationsoption verwenden, um entweder Ihr Bereitstellungspaket zu erstellen oder ein vorhandenes Paket durch Hinzufügen zusätzlicher Funktionen anzupassen.
Zwischen geführter und manueller Konfiguration wechseln
Wenn Sie die geführte Konfiguration im Producer Portal verwenden und später zur manuellen Konfiguration des Bereitstellungspakets wechseln möchten, klicken Sie auf Zur manuellen Konfiguration.
Geführte Konfiguration abschließen
Führen Sie die folgenden Schritte aus, um die Konfiguration und das Senden eines einfachen Bereitstellungspakets mit der Google Cloud Console abzuschließen:
Gehen Sie im Producer Portal zum Abschnitt Bereitstellungspaket.
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 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.
Legen Sie den Detaillierungsgrad fest, der auf die IAM-Berechtigungen (Identity and Access Management) für die Daten des Buckets angewendet werden soll.
Konfigurieren Sie optionale erweiterte Einstellungen wie Verschlüsselung oder Datenaufbewahrungsrichtlinien.
Achten Sie darauf, dass die Objektversionsverwaltung für Ihren Cloud Storage-Bucket aktiviert ist.
Klicken Sie auf Konfigurieren, um die Bucket-Einstellungen zu speichern und mit der Konfiguration des Bereitstellungspakets fortzufahren.
Unter Maschinentyp auswählen müssen Sie eine Standardzone, einen Mindestmaschinentyp und einen Standardmaschinentyp für Ihr VM-Produkt sowie die Größe und den Typ des Bootlaufwerks angeben.
Unter Betriebssystem angeben müssen Sie den Namen und die Version des Betriebssystems angeben, das Ihr VM-Image verwendet, sowie die Versionsnummer des VM-Images.
Optional können Sie unter VM-Zugriff einrichten Website- und Administrator-URLs sowie einen Nutzernamen und ein Passwort angeben, mit denen Nutzer nach der Bereitstellung auf die VM zugreifen können.
Optional können Sie unter Netzwerk konfigurieren Einstellungen für die IP-Weiterleitung festlegen und Firewallregeln konfigurieren.
Optional können Sie unter Nächste Schritte definieren eine Anleitung für die Nutzer Ihres Produkts angeben, um sie bei den ersten Schritten mit Ihrem Produkt zu unterstützen. Diese Anleitung ist für sie sichtbar, nachdem sie Ihr Produkt bereitgestellt hat.
Nachdem Sie die vorherigen Schritte abgeschlossen haben, klicken Sie auf Generieren, um das 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 zu generieren.
Prüfen Sie das Bereitstellungspaket im Producer Portal.
Nachdem die Validierung Ihres Bereitstellungspakets durch Cloud Marketplace erfolgreich abgeschlossen wurde, klicken Sie auf Veröffentlichen, um mit dem Testen des Bereitstellungspakets zu beginnen.
Manuelle Konfiguration abschließen
In diesem Abschnitt wird erläutert, wie Sie mit der manuellen Konfigurationsoption ein Bereitstellungspaket erstellen und zur Überprüfung einreichen.
Geben Sie an, ob das Standardmodul oder ein benutzerdefiniertes Terraform-Modul verwendet werden soll
Sie können festlegen, ob Ihre Kunden bei der Bereitstellung Ihres Produkts das Standard- oder ein benutzerdefiniertes Terraform-Modul verwenden sollen.
Wenn Sie sich für die Verwendung des Terraform-Standardmoduls entscheiden, stellt Google Cloud Ihren Kunden automatisch generierten Terraform-Code zur Verfügung, mit dem sie Ihr Produkt bereitstellen können.
Wenn Sie sich für ein benutzerdefiniertes Terraform-Modul entscheiden, müssen Sie Ihrem Kunden Ihre eigenen Terraform-Vorlagen bereitstellen. Sie können diese Vorlagen in einer Form bereitstellen, die Kunden über die Befehlszeile bereitstellen können, oder mit zusätzlichen Metadaten, mit denen Kunden Module direkt über Cloud Marketplace bereitstellen können.
Führen Sie die folgenden Schritte aus, um anzugeben, ob Ihre Kunden das Standard- oder ein benutzerdefiniertes Terraform-Modul verwenden sollen, und für benutzerdefinierte Terraform-Module, wie Ihre Kunden das Modul bereitstellen sollen:
Gehen Sie im Producer Portal zum Abschnitt Bereitstellungspaket.
Wählen Sie unter Terraform-Konfiguration unter Typ die Option Standard, Benutzerdefiniert (CLI-Bereitstellung) oder Benutzerdefiniert (UI-Bereitstellung) aus.
Anforderungen an benutzerdefinierte Terraform-Module
Wenn Sie benutzerdefinierte Terraform-Module verwenden, muss Ihr benutzerdefiniertes Modul die folgenden Anforderungen erfüllen:
Das benutzerdefinierte Modul muss ein Modul enthalten, mit dem Cloud Marketplace prüfen kann, ob es die Anforderungen erfüllt. Weitere Informationen finden Sie unter Testen, ob Ihr Modul die Überprüfung besteht.
Das Modul muss eine Variable mit dem Namen
project_id
haben, in der die Projekt-ID gespeichert ist, mit der Ihre Kunden das Modul bereitstellen.Sie müssen Verweise auf die Namen Ihrer Images als Terraform-Variablen im Format
projects/PROJECT_NAME/global/images/IMAGE_NAME
angeben. Der Wert vondefault
muss auf den Namen Ihres VM-Images festgelegt werden, damit die Cloud Marketplace-eigene Kopie des Images bei der Veröffentlichung Ihres VM-Produkts im Modul ersetzt werden kann.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 im 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 die folgenden zusätzlichen Anforderungen erfüllen:
Das Modul muss eine Variable mit dem Namen
goog_cm_deployment_name
enthalten. Cloud Marketplace verwendet diese Variable, um die Bereitstellungen Ihrer Kunden auf der Bereitstellungsseite zu benennen. Sie sollten diese Variable verwenden, um Konflikte bei der Ressourcenbenennung zwischen mehreren Bereitstellungen in einem Projekt zu vermeiden. Ein Beispiel finden Sie im Beispiel für ein benutzerdefiniertes Terraform-Modul untergoog_cm_deployment_name
.In der Datei
metadata.display.yaml
müssen SieET_GCE_DISK_IMAGE
alsxGoogleProperty
-Typ für alle Bildvariablen angeben. Ein Beispiel finden Sie untermetadata.display.yaml
im Beispiel für ein benutzerdefiniertes Terraform-Modul.Wenn Ihr Produkt Images mit mehreren VMs oder Images enthält, die mehrere CPU-Architekturen unterstützen, müssen Sie
enumValueLabels
hinzufügen, damit Ihre Kunden das VM-Image auswählen können, das sie verwenden möchten. Ein Beispiel finden Sie im Beispiel für ein benutzerdefiniertes Terraform-Modul.Ihr Modul darf nicht von der Unterstützung von Terraform-Bereitstellern abhängig sein.
Zusätzliche Schritte für benutzerdefinierte Terraform-Module
Wenn Sie benutzerdefinierte Terraform-Module verwenden möchten, müssen Sie die folgenden zusätzlichen Schritte ausführen, um das VM-Image für die Bereitstellung zu konfigurieren:
Gehen Sie im Producer Portal zum Abschnitt Bereitstellungspaket.
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 die Marketplace-Version Ihres VM-Images auszutauschen, wenn ein Kunde Ihr Produkt bereitstellt.
Geben Sie im Textfeld Image-Variable einen Namen für die Variable ein, z. B. "image".
Legen Sie in Ihrem benutzerdefinierten Terraform-Modul den Standardwert der Variablen, die Sie im vorherigen Schritt erstellt haben, auf den Namen des VM-Images für Ihr Produkt im Format
projects/YOUR_PROJECT/global/images/YOUR_IMAGE
fest.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.
Achten Sie darauf, dass die Objektversionsverwaltung für Ihren Cloud Storage-Bucket aktiviert ist.
Klicken Sie auf Konfigurieren, um die Bucket-Einstellungen zu speichern und mit der Konfiguration des Bereitstellungspakets fortzufahren.
Geben Sie unter Erforderliche Rollen die IAM-Rollen an, die Ihre Kunden zum Bereitstellen Ihres Produkts haben müssen.
(Nur UI-Bereitstellung) Metadaten für das benutzerdefinierte Terraform-Modul erstellen
Damit Ihr benutzerdefiniertes Modul die Bereitstellung in der UI unterstützt, müssen Sie Metadaten erstellen und hinzufügen, die Cloud Marketplace verwendet, um Ihr Modul korrekt zu parsen und es in der UI für Ihren Kunden zu rendern.
Zum Erstellen und Hinzufügen dieser Metadaten können Sie das Open-Source-Tool CFT CLI verwenden. Führen Sie die folgenden Schritte aus, um mit CFT Metadaten zu erstellen und Ihren benutzerdefinierten Modulen hinzuzufügen:
Installieren Sie das CFT CLI-Tool. Weitere Informationen finden Sie in der Dokumentation zur CFT CLI. Wir empfehlen, den Wert von
VERSION
auflatest
festzulegen undPLATFORM
auf einen der folgenden Werte festzulegen:linux
windows
darwin
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 das Terraform-Paket bereit, das Flag-q
generiert Metadaten, ohne dass Informationen für ein Remote-Repository erforderlich sind, das Flag-d
generiert die Dateimetadata.display.yaml
und das Flag--nested=false
generiert Metadaten für das Stammmodul, wobei alle Module im Ordnermodules/
übersprungen werden.
Nachdem Sie die vorherigen Schritte abgeschlossen haben, generiert 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 das Formular anzupassen, mit dem Kunden Ihr Produkt über die UI bereitstellen. Wenn Sie dieses Formular nach dem Erstellen der Metadaten anpassen möchten, können Sie die Werte der Felder in metadata.display.yaml
ändern. Weitere Informationen zu den verfügbaren Anpassungsoptionen finden Sie in der Open-Source-Dokumentation zu BlueprintUI oder im BlueprintUI-Schema.
Wir empfehlen, zum Ändern Ihrer Metadaten die Erweiterung GooglePropertyExtensions
zu verwenden. Mit GooglePropertyExtensions
können Sie Google Cloud-spezifische Validierungen verwenden. Beispielsweise können Sie erzwingen, dass Kunden nur VPC-Netzwerke (Virtual Private Cloud) auswählen können, die bereits in ihrem Projekt vorhanden sind. Ein Beispiel finden Sie im 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 das Terraform-Paket bereit und das Flag -v
validiert alle Metadatendateien unter dem angegebenen Pfad anhand des BlueprintMetadata
-Schemas.
Testen, ob Ihr Modul die Überprüfung besteht
Ihr benutzerdefiniertes Modul besteht die Überprüfung, wenn der folgende Befehl erfolgreich ausgeführt wird:
terraform plan -var project_id=YOUR_PROJECT -var-file marketplace_test.tfvars
Im vorherigen Befehl ist marketplace_test.tfvars
eine Terraform-Variablendatei, die nur Cloud Marketplace für diese Überprüfung des Moduls verwendet. 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 Ihrer Vorlage deklarierten Variablen festzulegen. Eine marketplace_test.tfvars
-Beispieldatei finden Sie im Beispiel für ein benutzerdefiniertes Terraform-Modul.
(Optional) (nur CLI-Bereitstellung) Ein Testmodul hinzufügen
Wenn Ihr benutzerdefiniertes Modul die Bereitstellung über die Befehlszeile unterstützt, können Sie optional einen Ordner mit dem Namen examples/marketplace_test
einschließen. Dies ist beispielsweise sinnvoll, wenn Ihr Produkt ein separates Testmodul zur Überprüfung seiner Funktionen enthalten muss. Wenn Sie diesen Ordner hinzufügen, muss der folgende Befehl erfolgreich ausgeführt werden, damit Ihr Modul die Überprüfung besteht:
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 es validieren und testen, bevor das Cloud Marketplace-Team es prüfen und genehmigen kann.
Gehen Sie im Producer Portal zum Abschnitt Bereitstellungspaket.
Klicke auf Validieren. Die Validierung kann bis zu zwei Stunden dauern und Sie können den Bildschirm während der Ausführung verlassen.
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 Veröffentlichen klicken, um Ihr gesamtes Produkt zur Überprüfung und Veröffentlichung in Cloud Marketplace einzureichen. Weitere Informationen finden Sie unter Produkt einreichen.