Terraform-Bereitstellungsmodul für die VM erstellen

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

Lizenziertes VM-Image erstellen

  1. Damit die Entwicklungs-VM nicht beeinträchtigt wird, erstellen Sie eine Kopie der in der VM verwendeten Festplatte. 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. Hängen Sie im Abschnitt Erweiterte Optionen das geklonte Laufwerk 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 zum Ausführen des Servers nicht erforderlich sind. Dasselbe Laufwerk wird zum Erstellen des VM-Images verwendet und ist später für Kunden zugänglich. Diese VM darf nur Bibliotheken enthalten, die für die Ausführung des Dienstes erforderlich sind.
  8. Bearbeiten Sie die VM und wählen Sie die Löschregel Laufwerk behalten aus.
  9. Löschen Sie diese VM.
  10. Rufen Sie die Lizenz zum Erstellen des lizenzierten Bildes im Producer Portal ab. Producer Portal
  11. Erstellen Sie ein neues VM-Produkt. Rufen Sie den Abschnitt 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-Bereitstellungsmodul erstellen

Marketplace bietet das Autogen-Tool zum Generieren der Terraform-Module für die Bereitstellung von VM-Images auf Marketplace.

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 Connectors 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 mindestens 2 CPUs und 8 GB RAM. N2d-standard ist optimal für Webserver mit mittlerem Traffic. Die Standard-VM kann mit 2 Cores festgelegt werden. Wenn Kunden mit mehr Traffic rechnen, kann dies beim Erstellen der VM über den Marketplace geändert werden. Informationen zu 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 einen String um und fügen Sie es in „bashScriptContent“ ein.
    gceStartupScript:
       bashScriptContent: 
  7. Definieren Sie die Eingabefelder, die bei der VM-Erstellung als Eingabe von Kunden verwendet werden.
        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: {}

    Behalten Sie die Platzierung als CUSTOM_TOP und den Namen als CONNECTOR_SETTINGS bei.

    Definieren Sie das Feld und die Art der erforderlichen Eingabe. In diesem Beispiel werden die Felder Testdaten und Port zum Ausführen des Dienstes für die Kunden des Marketplace-Connectors angezeigt.

  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 Details der 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 die automatische Generierung 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 den 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 auf dem Marketplace verwendet.

Nächste Schritte