Configurar a imagem da VM para implantação do Terraform

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 crie 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 VMs as implantações com regras básicas de firewall, mas não oferece suporte a como implantações com várias VMs e recursos não computacionais. Se Se precisar de recursos que não são compatíveis com a configuração guiada, use o 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 depois quiser configurar manualmente o pacote de implantação, clique em Acesse a 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:

  1. No Portal do Produtor, acesse a seção Pacote de implantação.

  2. Em Terraform configuration, ao lado do campo de entrada rotulado Bucket do Cloud Storage, 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 Crie um 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 ao Permissões do Identity and Access Management (IAM) para os dados do bucket.

    • Defina configurações avançadas opcionais, como criptografia ou dados de retenção de itens.

  3. Certifique-se de Ativar o controle de versões de objetos para o bucket do Cloud Storage.

  4. Salvar as configurações do bucket e continuar configurando a implantação clique em Configurar.

  5. Em Escolha o tipo de máquina, especifique uma Zona padrão. Tipo de máquina mínimo e Tipo de máquina padrão para sua VM junto com o tamanho e o tipo do disco de inicialização.

  6. Em Especificar sistema operacional, você deve especificar o nome e a versão. do SO usado pela imagem da VM e o número da versão da VM imagem.

  7. Opcionalmente, em Configurar acesso à VM, é possível especificar o site e o URLs, junto com um nome de usuário e uma senha, que os usuários podem utilizar para acessar a VM após a implantação.

  8. Em Configurar rede, é possível especificar as configurações Encaminhamento de IP e configure regras de Firewall.

  9. Opcionalmente, em Definir as próximas etapas, é possível fornecer instruções para os usuários do seu produto para orientá-los sobre como começar a usá-lo. Essas instruções ficarão visíveis para eles depois que eles implantarem seu produto.

  10. Depois de concluir as etapas anteriores, clique em Gerar para criar seu 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 depois em Gerar para gere novamente o pacote de implantação com essas alterações aplicadas.

  11. Valide o pacote de implantação no Portal do Produtor.

  12. Depois que a validação do pacote de implantação pelo Cloud Marketplace for concluída, clique em Publicar para começar a testar a implantação .

Concluir a configuração manual

Nesta seção, explicamos como usar a opção de configuração manual para criar um o pacote de implantação e o envie 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 padrão ou um do Terraform quando implantam seu produto.

Se você usar o módulo padrão do Terraform, o Google Cloud oferece aos clientes com código do Terraform gerado automaticamente que eles podem usar para implantar seu produto.

Se você usar um módulo personalizado do Terraform, precisará fornecer seu próprio modelos do Terraform para o cliente. Você pode optar por fornecer esses modelos em um formato que os clientes podem implantar usando a interface de linha de comando (CLI), ou metadados adicionais que permitem que os clientes implantem módulos diretamente de no Cloud Marketplace.

Para especificar se os clientes devem usar o Terraform padrão ou um personalizado módulo e, para módulos personalizados do Terraform, como você quer que seus clientes implantem do módulo, conclua as seguintes etapas:

  1. No Portal do Produtor, acesse a seção Pacote de implantação.

  2. Em Terraform configuration, em Type, selecione Default. Personalizado (implantação de CLI) ou Personalizado (implantação UI)

Requisitos para módulos personalizados do Terraform

Se você optar por usar módulos personalizados do Terraform, seu módulo personalizado precisará atender às requisitos a seguir:

  • 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 Confira se o módulo foi aprovado na verificação.

  • Seu módulo precisa ter uma variável com o nome project_id, que armazena o projeto ID que seus clientes usam para implantar o módulo.

  • Especifique referências aos nomes das imagens como arquivos variáveis, com o formato projects/PROJECT_NAME/global/images/IMAGE_NAME: O valor de default precisa ser definido como o nome da imagem de VM, para que o Uma cópia da imagem de propriedade do Cloud Marketplace pode ser substituída no 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 ver um exemplo de um 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 adicionais:

  • Seu módulo precisa conter uma variável com o nome goog_cm_deployment_name. O Cloud Marketplace usa essa variável para nomear na página de implantação. Use essa variável para evitar conflitos na nomenclatura de recursos entre várias implantações em um projeto. Para um exemplo, consulte goog_cm_deployment_name na exemplo de módulo personalizado do Terraform.

  • No arquivo metadata.display.yaml, você precisa especificar ET_GCE_DISK_IMAGE como o tipo xGoogleProperty para todas as variáveis de imagem. Por exemplo, ver metadata.display.yaml no exemplo de módulo personalizado do Terraform.

  • Se o produto tiver imagens de várias VMs ou compatíveis com várias CPUs é preciso adicionar enumValueLabels para que os clientes possam selecione a imagem de VM que eles querem usar. Para ver um exemplo, consulte exemplo de módulo personalizado do Terraform.

  • Seu módulo não pode depender do suporte para Provisionadores do Terraform.

Etapas adicionais para módulos personalizados do Terraform

Se você optou por usar módulos personalizados do Terraform, precisa concluir as seguintes etapas: etapas adicionais para configurar a imagem de VM para implantação:

  1. No Portal do Produtor, acesse a seção Pacote de implantação.

  2. Em Terraform configuration, em Image Variables, clique em Adicionar variável.

    Para ativar a implantação do Terraform do seu produto, é preciso ter ativou o uso de imagens de propriedade do Marketplace. O Cloud Marketplace usa a variável que você adiciona aqui para trocar a Versão da imagem de VM no Marketplace quando um cliente implanta a produto.

  3. No campo de texto Variável de imagem, insira um nome para sua variável, como "imagem".

  4. No seu módulo personalizado do Terraform, defina o valor padrão da variável que que você criou na etapa anterior para o nome da imagem de VM da produto, no formato projects/YOUR_PROJECT/global/images/YOUR_IMAGE:

  5. 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.

  6. Verifique se o Controle de versão do objeto está ativado no bucket do Cloud Storage.

  7. Salvar as configurações do bucket e continuar configurando a implantação clique em Configurar.

  8. Em Papéis necessários, especifique os papéis do IAM que seus clientes para implantar seu produto.

(Apenas implantação da UI) Criar metadados para seu módulo personalizado do Terraform

Para que seu módulo personalizado ofereça suporte à implantação da UI, você precisa criar e adicionar metadados que o Cloud Marketplace usa para analisar corretamente seu módulo e renderizá-lo na UI para o cliente.

Para criar e adicionar esses metadados, você pode usar o ferramenta CFT CLI Se quiser usar o CFT para criar e adicionar metadados aos módulos personalizados, conclua o seguintes etapas:

  1. Instale a ferramenta CFT CLI. Para mais informações, acesse a Documentação da CLI do CFT. Recomendamos que você especifique o valor de VERSION como latest. Defina PLATFORM como um destes valores:

    • linux

    • windows

    • darwin

  2. 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 arquivo a flag -q gera metadados sem precisar de informações para um repositório remoto, a flag -d gera o metadata.display.yaml e a sinalização --nested=false gera metadados para o módulo raiz. pulando todos os módulos na pasta modules/.

Depois de 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 a que os clientes usam para implantar o produto pela UI. Se você quiser personalizar este formulário. Depois de criar os metadados, você pode alterar os valores de os campos em metadata.display.yaml. Para mais detalhes sobre os objetos opções de personalização, acesse o site Documentação do BlueprintUI, ou consulte a Esquema do 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 possam selecionar apenas redes de nuvem privada virtual (VPC) que já existem projeto. Para ver um exemplo, consulte 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 flag -p fornece um caminho para o arquivo pacote, e a flag -v valida todos os arquivos de metadados no caminho fornecido com base na 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, somente para a verificação do mais tarde neste módulo. Se o modelo declarar alguma variável que não tenha um valor padrão, e você não definir um valor para essas variáveis, o comando não será executado com sucesso. Para garantir a execução bem-sucedida do comando, crie uma marketplace_test.tfvars para definir valores para as variáveis que seu declara. Para conferir um exemplo de arquivo marketplace_test.tfvars, consulte a exemplo de módulo personalizado do Terraform.

(Opcional) (somente implantação de CLI) Incluir um módulo de teste

Opcionalmente, se o módulo personalizado oferecer suporte à implantação da CLI, você poderá optar por incluir uma pasta chamada examples/marketplace_test. Você pode fazer isso se O produto precisa incluir um módulo de teste separado para verificar a própria capabilities. Se você incluir essa pasta, para que seu módulo passe o verificação, o comando a seguir precisa 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 validar e testá-lo antes que a equipe do Cloud Marketplace possa revisá-lo e aprová-lo reimplantá-lo.

  1. No Portal do Produtor, acesse a seção Pacote de implantação.

  2. Clique em Validate (Validar). O processo de validação pode levar até duas horas para concluído, e é possível sair da tela durante a execução.

  3. 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 sua implantação, você pode clicar em Publique para enviar seu produto geral para revisão e publicação em no Cloud Marketplace. Para mais detalhes, consulte Envie seu produto.