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
- 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
- Crea il clone della VM. Per informazioni, consulta Creare una VM simile a una VM esistente.
- Nella sezione Opzioni avanzate, collega il disco clonato.
- Crea la VM.
- Verifica che il server sia in esecuzione per questa VM. Lo script di avvio garantisce che la VM sia in esecuzione.
- Interrompi e rimuovi il servizio del connettore in Docker.
- 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.
- Modifica la VM e seleziona la regola di eliminazione Conserva il disco.
- Elimina questa VM.
- Per creare l'immagine concessa in licenza, ottieni la licenza dal Producer Portal. Visita il Producer Portal
- Crea un nuovo prodotto per macchine virtuali. Vai alla sezione Pacchetto di deployment e copia la licenza della VM.
- Per creare l'immagine VM con licenza, esegui il comando seguente:
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.
- Aggiungi i dettagli della soluzione:
- 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.
- 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
- Utilizza pd-standard come tipo di disco predefinito.
bootDisk: diskType: defaultType: pd-standard
- Aggiungi lo script di avvio alla configurazione di autogen. Stringifica lo script di avvio e aggiungilo in bashScriptContent.
gceStartupScript: bashScriptContent:
- 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.
- 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
- 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.
- 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
- 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.
solutionInfo: name:packagedSoftwareGroups: - type: SOFTWARE_GROUP_OS components: - name: Ubuntu version: 16.04 LTS - components: - name: Apache version: 2.4.23
Passaggi successivi
- Scopri come inviare l'immagine VM per l'approvazione.