Criar um módulo de implantação do Terraform para a VM
Esta página descreve como criar uma máquina virtual (VM) e um módulo de implantação do Terraform para a VM.
Criar a imagem de VM licenciada
- Para garantir que a VM de desenvolvimento não seja afetada, crie uma cópia do disco usado na VM executando o seguinte comando gcloud:
gcloud compute disks create CLONE_DISK \ --description="cloned disk" \ --source-disk=projects/PROJECT/zones/ZONE/disks/SOURCE_VM_DISK
- Crie o clone da VM. Para mais informações, consulte Criar uma VM semelhante a uma atual.
- Na seção Opções avançadas, anexe o disco clonado.
- Crie a VM.
- Verifique se o servidor está em execução para essa VM. O script de inicialização garante que a VM esteja em execução.
- Interrompa e remova o serviço de conector no Docker.
- Remova o diretório principal e qualquer outro arquivo que não seja necessário para executar o servidor. O mesmo disco será usado para criar a imagem da VM e poderá ser acessado pelos clientes mais tarde. Essa VM só precisa ter as bibliotecas necessárias para executar o serviço.
- Edite a VM e selecione a regra de exclusão Manter disco.
- Exclua essa VM.
- Para criar a imagem licenciada, obtenha a licença no portal do produtor. Acesse o Portal do Produtor.
- Crie um novo produto de máquina virtual. Acesse a seção Pacote de implantação e copie a licença da VM.
- Para criar a imagem de VM licenciada, execute o seguinte comando:
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
Para mais informações, consulte Como criar sua VM.
Criar um módulo de implantação do Terraform
O Marketplace oferece a ferramenta Autogen para gerar os módulos do Terraform para a implantação da imagem da VM no Marketplace.
Essa ferramenta usa a definição de proto do Autogen para gerar a implantação. Para mais informações, consulte Exemplo de configuração.
- Adicione os detalhes da solução:
- Para conectores, crie um módulo com uma VM. Insira o nome do projeto, o nome da imagem da VM e os rótulos da imagem no projeto público.
- Use n2d-standard-2 como o tipo de máquina padrão com CPU mínima de 2 e RAM de 8 GB. O N2d-standard é ideal para servidores da Web de tráfego médio. A VM padrão pode ser definida com dois núcleos. Se os clientes esperam um tráfego maior, isso pode ser alterado durante a criação da VM no Marketplace. Para informações sobre os preços de diferentes tipos de máquina, consulte Preços de instâncias de 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
- Use pd-standard como o tipo de disco padrão.
bootDisk: diskType: defaultType: pd-standard
- Adicione o script de inicialização à configuração de geração automática. Transforme o script de inicialização em string e adicione-o em bashScriptContent.
gceStartupScript: bashScriptContent:
- Defina os campos de entrada que serão usados como entrada dos clientes durante a criação da 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: {}
Mantenha a posição como CUSTOM_TOP e o nome como CONNECTOR_SETTINGS.
Defina o campo e o tipo de entrada necessário. Neste exemplo, os campos Dados de teste e Porta para executar o serviço aparecem para os clientes do conector do Marketplace.
- Defina os itens de metadados do Compute Engine. Ao definir os metadados da VM. Mapeie o nome do campo de entrada para a chave de metadados.
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
- Adicione os detalhes das etapas que serão mostradas aos clientes após a implantação.
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.
- Para configurar o autogen, execute o seguinte 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
- Para gerar o módulo do Terraform, execute o seguinte comando:
mkdir solution_folder autogen \ --input_type YAML \ --single_input example-config/solution.yaml \ --output_type PACKAGE \ --output solution_folder
A solução_folder contém o módulo terraform. Este módulo será usado ao publicar produtos no Marketplace.
solutionInfo: name:packagedSoftwareGroups: - type: SOFTWARE_GROUP_OS components: - name: Ubuntu version: 16.04 LTS - components: - name: Apache version: 2.4.23
A seguir
- Saiba como enviar a imagem da VM para aprovação.