Criar imagens de máquina


Use uma imagem de máquina para armazenar toda a configuração, metadados, permissões e dados de vários discos para uma instância de VM em execução no Compute Engine. A instância de VM usada para criar uma imagem de máquina é chamada de instância de VM de origem.

Para informações sobre quando e como usar imagens de máquina, consulte Imagens de máquina.

Neste documento, você verá as etapas para criar uma imagem de máquina a partir de uma VM de origem.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine selecionando uma das seguintes opções:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. REST

      Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

        Install the Google Cloud CLI, then initialize it by running the following command:

        gcloud init

      Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.

Limitações e restrições

  • É possível criar uma imagem de máquina de uma instância específica no máximo seis vezes a cada 60 minutos.
  • É possível proteger uma imagem de máquina usando o Cloud Key Management Service (Cloud KMS) ou uma chave de criptografia fornecida pelo cliente (CSEK, na sigla em inglês). A chave de criptografia protege o conteúdo dos discos. No entanto, os metadados não são protegidos.
  • Se você usar uma CSEK para proteger a imagem de máquina, uma cópia completa de todos os dados do disco será armazenada durante a geração dessa imagem. Nos outros casos, os dados do disco são armazenados em cópias diferenciais.
  • Não é possível criar imagens de máquina a partir de VMs de origem que:

    • Tem mais de 200 TB de discos anexados.
    • Não há discos anexados.
    • Têm volumes do Hyperdisk anexados.
    • Usam um tipo de máquina C3D, H3, A3 ou Z3

Propriedades de instância e disco não compatíveis com a imagem de máquina

Quando você cria imagens de máquina a partir de instâncias de VM ou criam instâncias de VM a partir de imagens de máquina, as seguintes propriedades de instância e disco não são preservadas ou restauradas:

  • disks.architecture
  • disks.description
  • disks.labels
  • disks.locked
  • disks.multiWriter
  • disks.onUpdateAction
  • disks.provisionedIops
  • disks.shieldedInstanceInitialState
  • disks.sourceImage
  • disks.sourceImageEncryptionKey
  • disks.sourceInstantSnapshot
  • disks.sourceSnapshot
  • disks.sourceSnapshotEncryptionKey
  • privateIpv6GoogleAccess
  • resourceManagerTags
  • resourcePolicies
  • secure_tag
  • shieldedInstanceConfig

Como criar uma imagem de máquina a partir de uma VM

É possível criar imagens de máquina usando o console do Google Cloud, a Google Cloud CLI ou a REST.

Para criar uma imagem de máquina, você precisa das seguintes informações:

  • um nome para a imagem de máquina que você quer criar;
  • O nome da instância da VM de origem.
  • A zona em que a instância da VM de origem está localizada.
  • uma descrição opcional;
  • um storageLocation (em inglês) opcional; Se você não especificar um local, o local de armazenamento padrão será o local multirregional do Cloud Storage da instância de VM de origem.
  • uma chave de criptografia opcional. É possível escolher entre uma chave de propriedade e gerenciada pelo Google, uma chave do Cloud Key Management Service (Cloud KMS) ou uma chave de criptografia fornecida pelo cliente (CSEK). Se nenhuma chave de criptografia for especificada, as imagens de máquina serão criptografadas com uma chave de propriedade e gerenciada pelo Google.
  • Se você quiser usar uma imagem de máquina para clonar e capturar snapshots de uma instância, você precisará remover as informações de SO e do app exclusivas dela antes de gerar a imagem de máquina usando uma instância. Por exemplo, para instâncias de VM do Windows, use GCESysprep a fim de preparar o sistema para a replicação.

Console

  1. No console do Google Cloud, acesse a página Imagens de máquina.

    Acessar Imagens de máquina

  2. Clique em Criar imagem de máquina.

  3. Especifique um Nome para sua imagem de máquina.

  4. Opcional: forneça uma Descrição.

  5. Selecione a instância da VM de origem.

  6. Opcional: especifique onde armazenar a imagem de máquina. Escolha entre armazenamento multirregional ou regional. Para mais informações sobre a localização, consulte Local de armazenamento de imagens de máquina.

  7. Opcional: selecione um método de Criptografia.

  8. Clique em Criar.

gcloud

Use o comando gcloud compute machine-images create para criar uma imagem de máquina usando uma instância.

gcloud compute machine-images create MACHINE_IMAGE_NAME \
    --source-instance=SOURCE_VM_NAME

Substitua:

  • MACHINE_IMAGE_NAME: nome da imagem de máquina que você quer criar.
  • SOURCE_VM_NAME: nome da instância da VM de origem de que você quer criar a imagem.

Exemplo

É possível usar o comando gcloud a seguir para criar uma imagem de máquina chamada my-machine-image a partir de uma instância de origem chamada my-instance:

gcloud compute machine-images create my-machine-image  \
    --source-instance=my-instance

O processo leva alguns minutos. Quando a imagem de máquina é criada, você recebe uma saída semelhante a esta:

Created [https://www.googleapis.com/compute/v1/projects/project-12345/global/machineImages/my-machine-image].
NAME               STATUS
my-machine-image   READY

REST

Na API, crie uma solicitação POST para o método machineimages.insert. No corpo da solicitação, inclua esta solicitação POST:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/machineImages

{
  "name": "MACHINE_IMAGE_NAME",
  "sourceInstance": "SOURCE_INSTANCE_URL"
}

Substitua:

  • PROJECT_ID: ID do projeto.
  • MACHINE_IMAGE_NAME: nome da imagem de máquina que você quer criar.
  • SOURCE_INSTANCE_URL: URL completo ou parcial da instância da VM de origem que você quer usar para criar a imagem de máquina. Por exemplo, se você tiver uma instância de origem chamada my-instance em um projeto chamado myProject. Os seguintes URLs serão válidos:

    • https://www.googleapis.com/compute/v1/projects/myProject/global/instances/my-instance
    • projects/myProject/global/instances/my-instance
    • global/instances/my-instance

A seguir