Neste artigo, descrevemos como concluir a configuração e enviar a 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 oferece suporte a produtos de VM simples, como implantações de VM única com regras básicas de firewall, mas não aceita alguns recursos complexos, como implantações com várias VMs e recursos que não são de computação. Se você precisar de recursos que não são compatíveis com a configuração guiada, use a opção de configuração manual para criar o pacote de implantação ou personalizar um pacote existente adicionando 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 quiser mudar para a configuração manual do pacote de implantação, clique em Acessar configuração manual.
Concluir a configuração guiada
Para finalizar a configuração e enviar um pacote de implantação simples usando o Console do Google Cloud, conclua as etapas a seguir:
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 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 políticas de criptografia ou retenção de dados.
Não se esqueça de ativar o controle de versões de objetos para o bucket do Cloud Storage.
Para salvar as configurações do bucket e continuar configurando o pacote de implantação, clique em Configurar.
Em Escolha o tipo de máquina, especifique uma Zona padrão, Tipo mínimo de máquina e Tipo de máquina padrão para seu produto de VM, além do tamanho e tipo do disco de inicialização.
Em Especificar sistema operacional, especifique o nome e a versão do SO usado pela imagem da VM, além do número da versão da imagem da VM.
Em Configurar acesso à VM, é possível especificar URLs do site e do administrador, além de nome de usuário e senha, que os usuários podem usar para acessar a VM após a implantação.
Em Configurar rede, é possível especificar configurações para Encaminhamento de IP e definir regras de Firewall.
Opcionalmente, em Definir as próximas etapas, você pode fornecer instruções para os usuários do seu produto orientá-los sobre como começar a usá-lo. Estas instruções ficarão visíveis para eles depois que eles implantarem seu produto.
Depois de concluir as etapas anteriores, clique em Gerar para criar o pacote de implantação.
Se você precisar fazer outras alterações no pacote de implantação mais tarde, clique em Editar para fazer alterações e, em seguida, clique em Gerar para gerar o pacote de implantação novamente com essas alterações aplicadas.
Valide o pacote de implantação no Portal do Produtor.
Depois que a validação do pacote de implantação pelo Cloud Marketplace for concluída, clique em Publicar para começar a testar o pacote de implantação.
Concluir a configuração manual
Nesta seção, explicamos como usar a opção de configuração manual para criar um pacote de implantação e enviá-lo para análise.
Especifique se você quer usar o módulo padrão ou personalizado do Terraform
Você pode escolher se quer que seus clientes usem o módulo padrão ou personalizado do Terraform ao implantar seu produto.
Se você optar por usar o módulo padrão do Terraform, o Google Cloud fornecerá aos seus clientes um código do Terraform gerado automaticamente que eles poderão usar para implantar seu produto.
Se você usar um módulo personalizado do Terraform, precisará fornecer seus próprios modelos do Terraform ao cliente. É possível fornecer esses modelos de forma que os clientes possam implantar usando a interface de linha de comando (CLI) ou com outros metadados que permitam aos clientes implantar módulos diretamente do Cloud Marketplace.
Para especificar se os clientes precisam usar o módulo padrão ou personalizado do Terraform e, para módulos personalizados do Terraform, como você quer que eles implantem o módulo, conclua as etapas a seguir:
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, seu módulo personalizado precisará 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.
Seu módulo precisa ter uma variável chamada
project_id
, que armazena o ID do projeto usado pelos clientes para implantar o módulo.Especifique 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 de propriedade do Cloud Marketplace possa ser substituída no módulo quando o produto de VM for publicado.Seu módulo não pode depender de módulos externos que não estejam empacotados com ele.
Seu 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 está em conformidade com 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 extras:
Seu módulo precisa conter uma variável com o nome
goog_cm_deployment_name
. O Cloud Marketplace usa essa variável para nomear as implantações dos clientes na página de implantação. Use essa variável para evitar colisões na nomenclatura de recursos entre várias implantações em um projeto. Para conferir um exemplo, consultegoog_cm_deployment_name
no módulo personalizado do Terraform de amostra.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 ou imagens de várias VMs compatíveis com várias arquiteturas de CPU, será necessário adicionar
enumValueLabels
para que os clientes possam selecionar a imagem de VM que querem usar. Para ver um exemplo, consulte o exemplo de módulo personalizado do Terraform.O módulo não pode depender da compatibilidade com provisionadores do Terraform.
Etapas adicionais para módulos personalizados do Terraform
Se você optou por usar módulos personalizados do Terraform, será preciso concluir as etapas extras a seguir para configurar a imagem de 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 do seu produto, é preciso ter ativado o uso de imagens de propriedade do Marketplace. O Cloud Marketplace usa a variável adicionada aqui para trocar a versão de propriedade 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 sua variável, como "imagem".
No módulo personalizado do Terraform, defina o valor padrão da variável criada na etapa anterior como o nome da imagem da VM do produto, no formato
projects/YOUR_PROJECT/global/images/YOUR_IMAGE
.Em Especificar o local do objeto do GCS, clique em Procurar.
Se você já criou 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 configurando o pacote de implantação, clique em Configurar.
Em Papéis obrigatórios, especifique os papéis de IAM que seus clientes precisam ter para implantar seu produto.
(Apenas implantação da UI) Criar metadados para seu módulo personalizado do Terraform
Para que o módulo personalizado seja compatível com a 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 CFT CLI de código aberto. Se quiser usar o CFT para criar e adicionar metadados aos módulos personalizados, siga estas etapas:
Instale a ferramenta CFT CLI. Para mais informações, consulte 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 sinalização
-p
fornece um caminho para o pacote do Terraform, a sinalização-q
gera metadados sem a necessidade de informações para um repositório remoto, a sinalização-d
gera o arquivometadata.display.yaml
e a sinalização--nested=false
gera metadados para o módulo raiz, ignorando os módulos na pastamodules/
.
Depois que você concluir as etapas anteriores, a ferramenta CFT CLI gera dois novos arquivos:
metadata.yaml
e metadata.display.yaml
.
Personalizar os metadados do seu 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 por meio da UI. Se quiser
personalizar esse formulário, depois de criar os metadados, altere os valores
dos campos em metadata.display.yaml
. Para ver detalhes sobre as opções de personalização
disponíveis, acesse a
documentação do BlueprintUI
de código aberto ou consulte o
esquema BlueprintUI.
Recomendamos que você use a extensão GooglePropertyExtensions
para alterar os metadados. GooglePropertyExtensions
permite que você use
validações específicas do Google Cloud, como impor que os clientes só possam
selecionar redes de nuvem privada virtual (VPC) que já existem nos
projetos deles. Para ver um exemplo, consulte o
exemplo de módulo personalizado do Terraform.
Validar os metadados do seu módulo personalizado
Para validar os metadados do seu módulo personalizado, execute o seguinte comando:
cft blueprint metadata -p TF_PACKAGE_PATH -v
No comando anterior, a sinalização -p
fornece um caminho para o pacote do Terraform, e a sinalização -v
valida todos os arquivos de metadados no caminho fornecido com base no esquema BlueprintMetadata
.
Testar se o módulo foi aprovado na verificação
Seu módulo personalizado será aprovado na verificação se o comando a seguir 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 apenas o Cloud Marketplace usa, exclusivamente para esta verificação do
módulo. Se o modelo declarar alguma variável que não tem um valor padrão
e você não definir um valor para essas variáveis, o comando não será
executado. Para garantir que o comando seja executado com êxito, crie um arquivo marketplace_test.tfvars
para definir valores para as variáveis declaradas pelo modelo. Para um exemplo de arquivo marketplace_test.tfvars
, consulte o
módulo personalizado do Terraform de exemplo.
(Opcional) (somente implantação de CLI) Incluir um módulo de teste
Opcionalmente, se o módulo personalizado oferecer suporte à implantação da CLI, será possível
incluir uma pasta chamada examples/marketplace_test
. Faça isso se
seu produto precisar incluir um módulo de teste separado para verificar os
recursos. Se você incluir essa pasta, para que seu módulo seja aprovado na
verificação, o seguinte comando precisará ser executado com êxito:
terraform -chdir=examples/marketplace_test plan -var project_id=YOUR_PROJECT
Validar e testar a implantação
Depois de criar e configurar o pacote de implantação, é preciso validá-lo e testá-lo para que a equipe do Cloud Marketplace possa analisá-lo e aprová-lo.
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 é possível sair da tela durante a execução.
Após a conclusão da validação, 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 geral para revisão e publicação no Cloud Marketplace. Para mais detalhes, consulte Enviar o produto.