Terraform-Bereitstellungsmodul für die VM erstellen

Auf dieser Seite wird beschrieben, wie Sie eine virtuelle Maschine (VM) und ein Terraform-Bereitstellungsmodul für die VM erstellen.

Lizenziertes VM-Image erstellen

  1. Damit die Entwicklungs-VM nicht betroffen ist, erstellen Sie eine Kopie des in der VM verwendeten Laufwerks. Führen Sie dazu den folgenden gcloud-Befehl aus:
    gcloud compute disks create CLONE_DISK \ --description="cloned disk" \ --source-disk=projects/PROJECT/zones/ZONE/disks/SOURCE_VM_DISK
  2. Erstellen Sie den Klon der VM. Weitere Informationen finden Sie unter VM erstellen, die einer vorhandenen VM ähnelt.
  3. Schließen Sie das geklonte Laufwerk im Bereich Erweiterte Optionen an.
  4. Erstellen Sie die VM.
  5. Prüfen Sie, ob der Server für diese VM ausgeführt wird. Das Startskript sorgt dafür, dass die VM ausgeführt wird.
  6. Beenden und entfernen Sie den Connector-Dienst in Docker.
  7. Entfernen Sie das Basisverzeichnis und alle anderen Dateien, die nicht zum Ausführen des Servers erforderlich sind. Dieses Laufwerk wird auch zum Erstellen des VM-Images verwendet und kann später von Kunden verwendet werden. Auf dieser VM dürfen nur Bibliotheken vorhanden sein, die für die Ausführung des Dienstes erforderlich sind.
  8. Bearbeiten Sie die VM und wählen Sie als Löschregel Laufwerk behalten aus.
  9. Löschen Sie diese VM.
  10. Rufen Sie die Lizenz im Producer Portal ab, um das lizenzierte Image zu erstellen. Producer Portal aufrufen
  11. Erstellen Sie ein neues Produkt vom Typ „Virtuelle Maschine“. Rufen Sie den Bereich Bereitstellungspaket auf und kopieren Sie die VM-Lizenz.
  12. Führen Sie den folgenden Befehl aus, um das lizenzierte VM-Image zu erstellen:
  13. gcloud compute images create VM_IMAGE_NAME \
     --project PUBLIC_PROJECT_NAME \
     --source-disk projects/DEV_PROJECT_NAME/zones/ZONE/disks/SOURCE_VM_DISK \
     --licenses LICENSE \
     --description VM_IMAGE_DESCRIPTION

    Weitere Informationen finden Sie unter VM erstellen.

Terraform-Deployment-Modul erstellen

Der Marketplace bietet das Autogen-Tool, mit dem die Terraform-Module für die Bereitstellung des VM-Images im Marketplace generiert werden.

Dieses Tool verwendet die Autogen-Proto-Definition, um die Bereitstellung zu generieren. Weitere Informationen finden Sie unter Beispielkonfiguration.

  1. Fügen Sie die Details Ihrer Lösung hinzu:
  2. solutionInfo:
      name: 
      packagedSoftwareGroups:
        - type: SOFTWARE_GROUP_OS
          components:
            - name: Ubuntu
              version: 16.04 LTS
        - components:
            - name: Apache
              version: 2.4.23
  3. Erstellen Sie für Konnektoren ein Modul mit einer VM. Geben Sie den Projektnamen, den Namen des VM-Images und die Labels für das Image in Ihrem öffentlichen Projekt ein.
  4. Verwenden Sie „n2d-standard-2“ als Standardmaschinentyp mit einer Mindestanzahl von 2 CPUs und 8 GB RAM. Der N2d-Standard ist optimal für Webserver mit mittlerem Traffic. Die Standard-VM kann mit 2 Kernen festgelegt werden. Wenn Kunden einen höheren Traffic erwarten, kann dies beim Erstellen der VM über den Marketplace geändert werden. Informationen zu den Preisen für verschiedene Maschinentypen finden Sie unter Preise für VM-Instanzen.
        machineType:
          # Check http://cloud.google.com/compute/docs/machine-types for all available types
          defaultMachineType:
            gceMachineType: n2d-standard-2
          # Minimum CPU and memory constraints for the machine type to run your solution properly
          minimum:
            cpu: 2
            ramGb: 8
  5. Verwenden Sie pd-standard als Standardlaufwerkstyp.
        bootDisk:
          diskType:
            defaultType: pd-standard
  6. Fügen Sie das Startskript der autogen-Konfiguration hinzu. Wandeln Sie das Startskript in eine Zeichenfolge um und fügen Sie es in „bashScriptContent“ ein.
    gceStartupScript:
       bashScriptContent: 
  7. Definieren Sie die Eingabefelder, die Kunden während der VM-Erstellung eingeben können.
        deployInput:
          sections:
            # The place int he Deployment Manager config that this section will appear. More details in deployment_package_autogen_spec.proto
            - placement: CUSTOM_TOP
              name: CONNECTOR_SETTINGS
              title: Connectors settings
              description: Connectors settings
              tooltip: Setting with which connector VM will be running
              # List of input fields that this section has
              fields:
                - required: false
                  name: TEST_DATA
                  title: Test Data
                  description: Test data
                  tooltip: random data for testing
                  string_box: {}
                - required: false
                  name: PORT
                  title: Port to run service
                  tooltip: Port to run connector service
                  string_box: {}
                - required: false
                  name: LOG_LEVEL
                  title: Log level
                  description: Log level for the web service. Allowed values are DEBUG, INFO, WARNING, ERROR. Default is INFO
                  string_box: {}

    Lassen Sie die Platzierung bei CUSTOM_TOP und den Namen bei CONNECTOR_SETTINGS.

    Definieren Sie das Feld und die erforderliche Eingabe. In diesem Beispiel sind die Felder Testdaten und Port zum Ausführen des Dienstes für die Kunden des Marktplatz-Connectors zu sehen.

  8. Definieren Sie die Compute Engine-Metadatenelemente. Beim Definieren der VM-Metadaten Ordnen Sie den Namen des Eingabefelds dem Metadatenschlüssel zu.
        gce_metadata_items:
          - key: CONNECTOR_ENV_PORT
            value_from_deploy_input_field: PORT
          - key: CONNECTOR_ENV_TEST_DATA
            value_from_deploy_input_field: TEST_DATA
    - key: CONNECTOR_ENV_LOG_LEVEL
            value_from_deploy_input_field: LOG_LEVEL
  9. Fügen Sie die Schritte hinzu, die Kunden nach der Bereitstellung angezeigt werden.
        postDeploy:
          # List of suggested action items for users, after deployment is successful
          actionItems:
            - heading: Create the Private service attachment
              description: Now the connector service is running on the VM, please create the PSC service attachment to create the connection. Follow https://cloud.google.com/integration-connectors/docs/configure-psc for the detailed guide.
            - heading: Create the connection
              description: After creating the connectors endpoint attachment, use the endpoint attachment to create a connection to the partner connector.
  10. Führen Sie den folgenden Befehl aus, um autogen einzurichten:
    alias autogen='docker run \
      --rm \
      --workdir /mounted \
      --mount type=bind,source="$(pwd)",target=/mounted \
      --user $(id -u):$(id -g) \
      gcr.io/cloud-Marketplace-tools/dm/autogen'
    
    autogen --help
  11. Führen Sie folgenden Befehl aus, um das Terraform-Modul zu generieren:
    mkdir solution_folder
    
    autogen \
      --input_type YAML \
      --single_input example-config/solution.yaml \
      --output_type PACKAGE \
      --output solution_folder

    Der Ordner „solution_folder“ enthält das Terraform-Modul. Dieses Modul wird beim Veröffentlichen von Produkten im Marketplace verwendet.

Nächste Schritte