Crea un modulo di deployment Terraform per la VM

Questa pagina descrive come creare una macchina virtuale (VM) e un modulo di deployment Terraform per la VM.

Crea l'immagine VM con licenza

  1. Per assicurarti che la VM di sviluppo non sia interessata, crea una copia del disco utilizzato nella VM eseguendo il seguente comando gcloud:
    gcloud compute disks create CLONE_DISK \ --description="cloned disk" \ --source-disk=projects/PROJECT/zones/ZONE/disks/SOURCE_VM_DISK
  2. Crea il clone della VM. Per informazioni, consulta Creare una VM simile a una VM esistente.
  3. Nella sezione Opzioni avanzate, collega il disco clonato.
  4. Crea la VM.
  5. Verifica che il server sia in esecuzione per questa VM. Lo script di avvio garantisce che la VM sia in esecuzione.
  6. Interrompi e rimuovi il servizio del connettore in Docker.
  7. Rimuovi la home directory e qualsiasi altro file non necessario per l'esecuzione del server. Lo stesso disco verrà utilizzato per creare l'immagine della VM e sarà accessibile ai clienti in un secondo momento. Questa VM deve contenere solo le librerie necessarie per l'esecuzione del servizio.
  8. Modifica la VM e seleziona la regola di eliminazione Conserva il disco.
  9. Elimina questa VM.
  10. Per creare l'immagine concessa in licenza, ottieni la licenza dal Producer Portal. Visita il Producer Portal
  11. Crea un nuovo prodotto per macchine virtuali. Vai alla sezione Pacchetto di deployment e copia la licenza della VM.
  12. Per creare l'immagine VM con licenza, esegui il comando seguente:
  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

    Per ulteriori informazioni, consulta Creare la VM.

Crea un modulo di deployment Terraform

Marketplace fornisce lo strumento Autogen per generare i moduli Terraform per il deployment dell'immagine VM su Marketplace.

Questo strumento utilizza la definizione del proto di generazione automatica per generare il deployment. Per ulteriori informazioni, vedi Configurazione di esempio.

  1. Aggiungi i dettagli della soluzione:
  2. solutionInfo:
      name: 
      packagedSoftwareGroups:
        - type: SOFTWARE_GROUP_OS
          components:
            - name: Ubuntu
              version: 16.04 LTS
        - components:
            - name: Apache
              version: 2.4.23
  3. Per i connettori, crea un modulo con una VM. Inserisci il nome del progetto, il nome dell'immagine VM e le etichette per l'immagine nel progetto pubblico.
  4. Utilizza n2d-standard-2 come tipo di macchina predefinito con CPU minima pari a 2 e RAM pari a 8 GB. N2d-standard è ottimale per i server web con traffico medio. La VM predefinita può essere impostata con 2 core. Se i clienti si aspettano un traffico più elevato, questo può essere modificato durante la creazione della VM dal marketplace. Per informazioni sui prezzi dei diversi tipi di macchine, consulta la pagina Prezzi delle istanze VM.
        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. Utilizza pd-standard come tipo di disco predefinito.
        bootDisk:
          diskType:
            defaultType: pd-standard
  6. Aggiungi lo script di avvio alla configurazione di autogen. Stringifica lo script di avvio e aggiungilo in bashScriptContent.
    gceStartupScript:
       bashScriptContent: 
  7. Definisci i campi di immissione che verranno inseriti dai clienti durante la creazione della VM.
        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: {}

    Mantieni il posizionamento CUSTOM_TOP e il nome CONNECTOR_SETTINGS.

    Definisci il campo e il tipo di input richiesto. In questo esempio, i campi Dati di test e Porta per eseguire il servizio vengono visualizzati per i clienti del connettore Marketplace.

  8. Definisci gli elementi dei metadati di Compute Engine. Durante la definizione dei metadati della VM. Mappa il nome del campo di immissione alla chiave dei metadati.
        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. Aggiungi i dettagli della procedura che verranno mostrati ai clienti dopo il deployment.
        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. Per configurare l'autogen, esegui il seguente comando:
    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. Per generare il modulo Terraform, esegui il seguente comando:
    mkdir solution_folder
    
    autogen \
      --input_type YAML \
      --single_input example-config/solution.yaml \
      --output_type PACKAGE \
      --output solution_folder

    La cartella solution_folder contiene il modulo terraform. Questo modulo verrà utilizzato durante la pubblicazione dei prodotti su Marketplace.

Passaggi successivi