Este artigo descreve como concluir a configuração e enviar sua imagem de VM para implantação usando o Terraform.
Determinar como criar o pacote de implantação
Recomendamos que você use a opção de configuração guiada do Portal do Produtor para criar seu pacote de implantação diretamente no console do Google Cloud.
A opção de configuração guiada é compatível com produtos de VM simples, como implantações de VM única com regras básicas de firewall, mas não com alguns recursos complexos, como implantações com várias VMs e recursos não computacionais. Se você precisar de recursos não compatíveis com a configuração guiada, use a opção de configuração manual para criar seu pacote de implantação ou personalizar um pacote atual ao adicionar outros recursos a ele.
Alternar entre a configuração guiada e a configuração manual
Se você usar a opção de configuração guiada do Portal do Produtor e depois quiser mudar para a configuração manual do seu pacote de implantação, clique em Acessar configuração manual.
Concluir a configuração guiada
Para concluir a configuração e enviar um pacote de implantação simples usando o console do Google Cloud, siga estas etapas:
No Portal do Produtor, acesse a seção Pacote de implantação.
Em Configuração do Terraform, ao lado do campo de entrada Bucket do Cloud Storage, clique em Procurar.
Se você já tiver criado um bucket do Cloud Storage, selecione-o aqui.
Se você não tiver um bucket do Cloud Storage, clique no ícone rotulado Criar novo bucket. Após criar um novo bucket, siga estas etapas:
Selecione um nome para o bucket.
Especifique em qual região ou regiões o bucket armazena dados.
Especifique a classe de armazenamento dos seus dados.
Determine o nível de granularidade a ser aplicado às permissões do Identity and Access Management (IAM) para os dados do bucket.
Defina configurações avançadas opcionais, como criptografia ou políticas de retenção de dados.
Ative o controle de versões de objeto no bucket do Cloud Storage.
Para salvar as configurações do bucket e continuar a configurar o pacote de implantação, clique em Configurar.
Em Escolher o tipo de máquina, você precisa especificar uma zona padrão, Tipo de máquina mínimo e Tipo de máquina padrão para seu produto de VM, além do tamanho e do tipo do disco de inicialização.
Em Especificar sistema operacional, você precisa especificar o nome e a versão do sistema operacional que sua imagem de VM usa, bem como o número da versão da imagem da VM.
Como alternativa, em Configurar acesso à VM, especifique os URLs do site e do administrador, além do nome de usuário e da senha, que os usuários poderão usar para acessar a VM após a implantação.
Como alternativa, em Configurar rede, é possível especificar as configurações de Encaminhamento de IP e configurar as regras de Firewall.
Também é possível, na opção Definir próximas etapas, fornecer instruções aos usuários para orientá-los sobre como começar a usar seu produto. Essas instruções vão ficar visíveis após a implantação do produto.
Depois de concluir as etapas anteriores, clique em Generate para criar o pacote de implantação.
Se precisar fazer outras mudanças no pacote de implantação mais tarde, clique em Edit para fazer as alterações e em Generate para gerar novamente o pacote de implantação com as alterações aplicadas.
Valide o pacote de implantação no Portal do Produtor.
Depois que a validação do pacote de implantação do Cloud Marketplace for concluída, clique em Publicar para começar a testar o pacote.
Concluir a configuração manual
Esta seção explica como usar a opção de configuração manual para criar um pacote de implantação e enviá-lo para revisão.
Especificar se o módulo do Terraform a ser usado é padrão ou personalizado
Você pode escolher se os clientes vão usar o módulo padrão ou um módulo personalizado do Terraform ao implantar seu produto.
Se você optar por usar o módulo padrão do Terraform, o Google Cloud vai fornecer aos seus clientes um código do Terraform gerado automaticamente que eles podem usar para implantar seu produto.
Se você optar por usar um módulo personalizado do Terraform, forneça seus próprios modelos do Terraform ao cliente. Você pode fornecer esses modelos em um formato que os clientes podem implantar usando a interface de linha de comando (CLI) ou com metadados adicionais que permitem que os clientes implantem módulos diretamente do Cloud Marketplace.
Para especificar se os clientes devem usar o módulo padrão ou um módulo personalizado do Terraform e, no caso de módulos personalizados, como você quer que os clientes implantem o módulo, siga estas etapas:
No Portal do Produtor, acesse a seção Pacote de implantação.
Em Configuração do Terraform, em Tipo, selecione Padrão, Personalizado (implantação da CLI) ou Personalizado (implantação da UI).
Requisitos para módulos personalizados do Terraform
Se você optar por usar módulos personalizados do Terraform, eles precisarão atender aos seguintes requisitos:
O módulo personalizado precisa ter um módulo que o Cloud Marketplace possa usar para verificar se ele atende aos requisitos. Para mais informações, consulte Testar se o módulo é aprovado na verificação.
O módulo precisa ter uma variável chamada
project_id
, que armazena o ID do projeto que os clientes usam para implantar o módulo.É necessário especificar as referências aos nomes das imagens como variáveis do Terraform, com o formato
projects/PROJECT_NAME/global/images/IMAGE_NAME
. O valor dedefault
precisa ser definido como o nome da imagem da VM para que a cópia da imagem pertencente ao Cloud Marketplace possa ser substituída no módulo quando o produto da VM for publicado.Seu módulo não pode depender de módulos externos que não estão empacotados com ele.
O módulo precisa usar apenas os seguintes provedores aprovados:
archive
cloud-init
dns
google
google-beta
http
null
random
time
tls
Para conferir um exemplo de módulo personalizado que atende a esses requisitos, acesse o exemplo de módulo personalizado do Terraform.
Requisitos adicionais para módulos personalizados do Terraform para implantação da UI
Se o módulo personalizado oferecer suporte à implantação da UI, ele precisará atender aos seguintes requisitos adicionais:
O módulo precisa conter uma variável chamada
goog_cm_deployment_name
. O Cloud Marketplace usa essa variável para nomear as implantações dos seus clientes na página de implantação. Use essa variável para evitar conflitos de nomenclatura de recursos entre várias implantações em um projeto. Para um exemplo, consultegoog_cm_deployment_name
no exemplo de módulo personalizado do Terraform.No arquivo
metadata.display.yaml
, especifiqueET_GCE_DISK_IMAGE
como o tipoxGoogleProperty
para todas as variáveis de imagem. Para conferir um exemplo, consultemetadata.display.yaml
no exemplo de módulo personalizado do Terraform.Se o produto tiver imagens de várias VMs ou imagens com suporte a várias arquiteturas de CPU, adicione
enumValueLabels
para que os clientes possam selecionar a imagem da VM que querem usar. Para conferir um exemplo, consulte o exemplo de módulo personalizado do Terraform.Seu módulo não pode depender do suporte a provisionadores do Terraform.
Etapas adicionais para módulos personalizados do Terraform
Se você tiver escolhido usar módulos personalizados do Terraform, siga estas etapas adicionais para configurar a imagem da VM para implantação:
No Portal do Produtor, acesse a seção Pacote de implantação.
Em Configuração do Terraform, em Variáveis de imagem, clique em Adicionar variável.
Para ativar a implantação do Terraform no seu produto, é necessário ter ativado o uso de imagens do Marketplace. O Cloud Marketplace usa a variável adicionada aqui para trocar a versão do Marketplace da sua imagem de VM quando um cliente implanta o produto.
No campo de texto Variável de imagem, insira um nome para a variável, como "imagem".
No módulo personalizado do Terraform, defina o valor padrão da variável que você criou na etapa anterior para o nome da imagem da VM do seu produto no formato
projects/YOUR_PROJECT/global/images/YOUR_IMAGE
.Em Especificar o local do objeto do GCS, clique em Procurar.
Se você já tiver criado um bucket do Cloud Storage, selecione-o aqui.
Se você não tiver um bucket do Cloud Storage, clique no ícone rotulado Criar novo bucket. Após criar um novo bucket, siga estas etapas:
Selecione um nome para o bucket.
Especifique em qual região ou regiões o bucket armazena dados.
Especifique a classe de armazenamento dos seus dados.
Determine o nível de granularidade a ser aplicado às permissões de gerenciamento de identidade e acesso (IAM) para os dados do bucket.
Defina configurações avançadas opcionais, como criptografia ou políticas de retenção de dados.
Verifique se o Controle de versão do objeto está ativado no bucket do Cloud Storage.
Para salvar as configurações do bucket e continuar a configurar o pacote de implantação, clique em Configurar.
Em Papéis obrigatórios, especifique os papéis do IAM que seus clientes precisam ter para implantar seu produto.
(Somente implantação da UI) Criar metadados para seu módulo personalizado do Terraform
Para que o módulo personalizado ofereça suporte à implantação da UI, é necessário criar e adicionar metadados que o Cloud Marketplace usa para analisar corretamente o módulo e renderizá-lo na UI do cliente.
Para criar e adicionar esses metadados, use a ferramenta de CLI do CFT (link em inglês) de código aberto. Para usar o CFT e criar e adicionar metadados aos seus módulos personalizados, siga estas etapas:
Instale a ferramenta CLI do CFT. Para mais informações, acesse a documentação da CLI do CFT. Recomendamos que você especifique o valor de
VERSION
comolatest
e definaPLATFORM
como um dos seguintes valores:linux
windows
darwin
Execute este comando:
cft blueprint metadata -p TF_PACKAGE_PATH -q -d --nested=false
No comando anterior, a flag
-p
fornece um caminho para o pacote do Terraform, a flag-q
gera metadados sem precisar de informações para um repositório remoto, a flag-d
gera o arquivometadata.display.yaml
e a flag--nested=false
gera metadados para o módulo raiz, pulando todos os módulos na pastamodules/
.
Depois de concluir as etapas anteriores, a ferramenta CLI do CFT gera dois novos arquivos:
metadata.yaml
e metadata.display.yaml
.
Personalizar os metadados do módulo personalizado do Terraform
O Cloud Marketplace usa o arquivo metadata.display.yaml
para personalizar o
formulário que os clientes usam para implantar seu produto pela UI. Se você quiser
personalizar esse formulário, depois de criar os metadados, altere os valores dos
campos em metadata.display.yaml
. Para detalhes sobre as opções de
personalização disponíveis, acesse a
documentação do BlueprintUI (link em inglês) de código aberto ou consulte o
esquema do BlueprintUI.
Recomendamos que você use a extensão
GooglePropertyExtensions
para alterar os metadados. O GooglePropertyExtensions
permite usar
validações específicas do Google Cloud, como fazer com que os clientes só possam
selecionar redes de nuvem privada virtual (VPC) que já existem no
projeto. Para conferir um exemplo, consulte o
exemplo de módulo personalizado do Terraform.
Validar os metadados do módulo personalizado
Para validar os metadados do módulo personalizado, execute o seguinte comando:
cft blueprint metadata -p TF_PACKAGE_PATH -v
No comando anterior, a flag -p
fornece um caminho para o pacote do Terraform, e a flag -v
valida todos os arquivos de metadados no caminho fornecido com base no esquema BlueprintMetadata
.
Testar se o módulo passa na verificação
O módulo personalizado vai passar na verificação se o comando abaixo for executado com sucesso:
terraform plan -var project_id=YOUR_PROJECT -var-file marketplace_test.tfvars
No comando anterior, marketplace_test.tfvars
é um arquivo de variáveis do Terraform que só o Cloud Marketplace usa, apenas para essa verificação do módulo. Se o modelo declarar variáveis que não têm um valor padrão
e você não definir um valor para elas, o comando não será executado
com sucesso. Para garantir que o comando seja executado com sucesso, crie um
arquivo marketplace_test.tfvars
para definir valores para as variáveis declaradas pelo
modelo. Para conferir um exemplo de arquivo marketplace_test.tfvars
, consulte o
exemplo de módulo personalizado do Terraform.
(Opcional) (somente implantação da CLI) Incluir um módulo de teste
Se o módulo personalizado oferecer suporte à implantação da CLI, você poderá
incluir uma pasta chamada examples/marketplace_test
. Talvez você queira fazer isso se
o produto precisar incluir um módulo de teste separado para verificar os
recursos. Se você incluir essa pasta, o comando a seguir precisará ser executado com sucesso para que o módulo seja aprovado na
verificação:
terraform -chdir=examples/marketplace_test plan -var project_id=YOUR_PROJECT
Validar e testar a implantação
Depois de criar e configurar seu pacote de implantação, você precisa validá-lo e testá-lo antes que a equipe do Cloud Marketplace possa analisar e aprovar.
No Portal do Produtor, acesse a seção Pacote de implantação.
Clique em Validate (Validar). O processo de validação pode levar até duas horas para ser concluído, e você pode sair da tela enquanto ele é executado.
Depois que a validação for concluída, clique em Visualização da implantação para testar a implantação.
A seguir
Depois de validar e testar a implantação, clique em Publicar para enviar o produto para revisão e publicação no Cloud Marketplace. Para mais detalhes, consulte Enviar seu produto.