Como criar sua imagem de VM

Nesta página, você aprende a criar uma imagem de máquina pública para seu produto ser executado no Compute Engine.

Uma imagem contém um carregador de inicialização, um sistema operacional e um sistema de arquivos raiz, necessário à inicialização de uma instância. É possível configurar a imagem com um conjunto de apps e serviços para sua solução. A imagem é usada pelos clientes para iniciar uma instância de máquina virtual (VM) na nuvem.

Recomendamos começar criando uma imagem no projeto de desenvolvimento e movê-la para o projeto público depois que o engenheiro de parceiros do Google a tiver verificado.

Antes de começar

  1. Faça o download do SDK do Google Cloud.

Criar a VM de solução base

Para criar uma imagem de máquina personalizada para o Google Cloud Marketplace, você precisa concluir estas etapas (descritas nas seções a seguir):

Criar uma imagem de VM licenciada

  1. Use o gcloud para definir padrões do SDK do Cloud:

    gcloud config set project <project_id>
    gcloud config set compute/zone <zone>
  2. Crie uma instância principal que será usada para instalar seu software e, posteriormente, convertida em uma imagem para usar no Google Cloud Marketplace. Para mais informações sobre como criar uma instância, consulte Como criar e iniciar uma instância.

    gcloud compute instances create ${INSTANCE} --scopes
    https://www.googleapis.com/auth/cloud-platform 
  3. Instale e personalize seu software. Inclua todos os scripts de inicialização necessários, como aqueles para criar credenciais de autorização.

    Para criar credenciais de autorização usando senhas aleatórias seguras, siga as etapas em Como criar credenciais de autorização, nesta página.

  4. Adicione os arquivos de texto da licença de código aberto e o código-fonte na VM, se aplicável. Consulte o documento de compliance de código aberto para ver os requisitos.

    Depois de criar e personalizar a instância principal, prepare o disco necessário para criar uma imagem de VM.

  5. Limpe o disco. A criação de uma imagem de VM diretamente de sua VM também transfere seus diretórios de usuário e chaves SSH para as VMs de seus clientes, portanto, você precisa limpar o disco usado como disco de entrada na criação de sua imagem de VM. Para limpar o disco:

    1. No menu Instâncias de VM do Compute Engine, clique no nome da instância que você quer limpar e clique em Editar.

    2. Role a tela para baixo, desmarque Excluir disco de inicialização quando a instância for excluída e clique em Salvar. Você precisará do disco para criar a imagem.

    3. Exclua a VM preservando o disco. Você precisará confirmar a exclusão. Não selecione Também excluir disco de inicialização.

    4. Em seguida, você precisa criar uma nova instância de VM. Expanda as opções em Gerenciamento, disco, redes, chaves SSH.

    5. Em disco, anexe o disco da instância anterior como um disco de dados adicional. Verifique se Manter disco está selecionado para Ao excluir uma instância.

      Já é possível aplicar SSH à instância e remover todos os diretórios iniciais ou outros arquivos temporários criados durante o processo de instalação do software. Você precisará montar o disco de dados para poder acessá-lo. Para ver mais informações sobre como montar discos, consulte Como adicionar ou redimensionar discos permanentes.

    6. Quando terminar, desligue e exclua a instância preservando o disco de dados atualizado. Agora, é possível concluir os passos a seguir para criar uma imagem de VM.

  6. Consiga o nome da licença da sua solução no portal do parceiro usando estas etapas:

    1. Para editar a solução, clique no código dela.

    2. Edite os Metadados da solução.

    3. Nos metadados da solução, na seção "Licenciamento e definição de preços", em Nome da licença, anote o nome da licença. Você usa esse nome de licença posteriormente, ao usar gcloud para criar sua imagem.

  7. Crie uma imagem licenciada executando o seguinte comando gcloud:

    gcloud compute images create CREATE_IMAGE_NAME \
     --project PUBLIC_PROJECT_NAME \
     --source-disk projects/DEV_PROJECT_NAME/zones/SOURCE_DISK_ZONE/disks/SOURCE_DISK_NAME \
     --licenses projects/PUBLIC_PROJECT_NAME/global/licenses/LICENSE_NAME \
     --description ADD_DESCRIPTION
    

Como criar credenciais de autorização

Se sua solução for uma implantação simples de uma única instância de VM com regras de firewall básicas, você conseguirá incluir automaticamente uma senha aleatória segura ao configurar seu pacote de implantação diretamente no Portal do parceiro.

Se você planeja criar seu pacote de implantação usando a ferramenta de código aberto mpdev, que é recomendado para a maioria dos casos de usompdev para incluir várias senhas aleatórias seguras automaticamente.

Depois que a solução for implantada, para ver os valores de todas as senhas que você criou, use o seguinte comando na instância de VM:

curl -H "Metadata-Flavor: Google" \
http://metadata/computeMetadata/v1/instance/attributes/PASSWORD_NAME

Testar a imagem da VM

Crie uma instância de VM com sua imagem recém-criada e verifique a funcionalidade.

Além disso, para verificar o código de licença, aplique SSH à instância e verifique se as licenças válidas estão anexadas:

curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/licenses/?recursive=true

Verifique se o Python 2.6 ou posterior está instalado:

python -V

Verifique se os pacotes a seguir estão instalados:

gcloud --version
gsutil --version
ssh -V
ps aux | grep sshd
curl -V
ps aux | grep dhcp

Verifique se não há outros diretórios de usuário instalados na instância, exceto o seu, e se não há nenhum diretório e credencial de usuário restante além dos seus.