Use uma imagem de máquina para armazenar toda a configuração, metadados, permissões e dados de um ou mais discos para uma instância de VM em exibição no Compute Engine. Para informações sobre quando e como usar imagens de máquina, consulte Imagens de máquina.
Neste documento, descrevemos os passos para importar uma imagem de máquina de um dispositivo virtual.
Antes de começar
- Se o projeto em que você quer importar a imagem de máquina tiver uma
política de imagem confiável
definida, adicione
projects/compute-image-import
eprojects/compute-image-tools
à lista de editores permitidos. - Se você estiver importando um dispositivo virtual de um projeto diferente, consulte Como importar entre projetos.
- Veja os requisitos de arquivo de VM de origem e OVF no guia de importação de dispositivos virtuais do Compute Engine.
- Saiba como atender aos requisitos antes de importar imagens de máquina em Pré-requisitos para importar e exportar imagens de VM.
-
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 da seguinte maneira.
Select the tab for how you plan to use the samples on this page:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- É possível compartilhar uma imagem de máquina entre projetos. No entanto, redes VPC compartilhadas não são compatíveis.
- Esse recurso não é compatível com projetos protegidos com o VPC Service Controls.
- Não é possível criar imagens de máquina com base em VMs de origem com mais de 200 TB de discos anexados.
MACHINE_IMAGE_NAME
: nome da imagem de máquina que você quer importar;SOURCE_URI
: caminho para o arquivo OVA ou OVF no Cloud Storage;OS
: sistema operacional do arquivo OVA. Essa sinalização é opcional por padrão, mas pode ser necessária em alguns casos. Recomendamos que você a forneça.Faça upload do dispositivo virtual para o Cloud Storage.
Envie uma solicitação
POST
para a API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-machine-image-name=MACHINE_IMAGE_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }
Substitua:
PROJECT_ID
: ID do projeto em que você quer importar o arquivo OVA;MACHINE_IMAGE_NAME
: nome da imagem de máquina a ser importada; Por exemplo,my-machine-image
.SOURCE_URI
: URI do arquivo OVA ou um diretório que contém pacotes OVF armazenados no Cloud Storage. Por exemplo,gs://my-bucket/my-instance.ova
.OS
: sistema operacional do arquivo OVA. Por exemplo,ubuntu-1604
. Essa sinalização é opcional por padrão, mas pode ser necessária em alguns casos. Recomendamos que você a forneça.
Para ver outros valores de
args
que podem ser fornecidos, consulte a seção de sinalizações opcionais na página do GitHub sobre importação do OVF do Compute Engine (em inglês).- Sistema operacional:
Ubuntu 1404
- CPU:
2 CPUs
- Memória:
2048 MB
- Sistema operacional:
Ubuntu 1404
- CPU:
2 CPUs
- Memória:
2048 MB
- Sistema operacional:
Ubuntu 1404
- Rede:
custom-vpc-network
- Sub-rede
company-vpc-us-east1-c
- Zona:
us-east1-c
- Sistema operacional:
Ubuntu 1404
- Rede:
custom-vpc-network
- Sub-rede
company-vpc-us-east1-c
- Zona:
us-central1-c
Adicione o dispositivo virtual ao Cloud Storage.
O processo de importação requer que os gerenciadores de pacotes sejam instalados no sistema operacional da imagem da máquina. Esses gerenciadores de pacotes podem precisar fazer solicitações para repositórios de pacote que estão fora do Google Cloud. Para permitir o acesso a essas atualizações, você precisa configurar o Cloud NAT. Para mais informações, consulte Criar uma configuração NAT usando o Cloud Router.
Configure Acesso privado do Google. Para mais informações, consulte Como configurar o acesso particular do Google.
Importe a imagem de máquina usando a Google Cloud CLI ou a API Cloud Build.
Quando você importa uma imagem de máquina de um dispositivo virtual, VMs temporárias são criadas no seu projeto. Para garantir que essas VMs temporárias não recebam endereços IP externos, é preciso especificar uma sinalização ou um argumento adicional.
Para mais informações sobre a sinalização ou o argumento obrigatório, clique nas seguintes guias:
MACHINE_IMAGE_NAME
: nome da imagem de máquina que você quer importar;SOURCE_URI
: URI do arquivo OVA ou OVF no Cloud Storage. Por exemplo,gs://my-bucket/Ubuntu.ova
.OS
: sistema operacional do arquivo OVA. Essa sinalização é opcional por padrão, mas pode ser necessária em alguns casos. Recomendamos que você a forneça. Para ver uma lista de valores compatíveis, consulte as opções de sinalização--os
no comandogcloud compute machine-images import
.ZONE
: a zona na qual a imagem da máquina será importada. Se ficar em branco, a zona padrão do projeto será usada.PROJECT_ID
: o ID do projeto em que a imagem de máquina será importada;MACHINE_IMAGE_NAME
: o nome da imagem de máquina a ser importada. Por exemplo,my-machine-image
.SOURCE_URI
: o URI do arquivo OVA armazenado no Cloud Storage. Por exemplo,gs://my-bucket/my-machine.ova
.OS
: o sistema operacional do arquivo OVA. Por exemplo,ubuntu-1604
. Essa sinalização é opcional por padrão, mas pode ser necessária em alguns casos. Recomendamos que você a forneça. Para ver uma lista de valores compatíveis, consulte as opções de sinalização--os
no comandogcloud compute instances import
.ZONE
: a zona na qual a imagem da máquina será importada.Adicione o dispositivo virtual ao Cloud Storage.
Crie uma conta de serviço e atribua o mínimo de papéis. Para mais informações sobre como criar contas de serviço, consulte Como criar e gerenciar contas de serviço.
A conta de serviço do Compute Engine especificada precisa ter, no mínimo, os seguintes papéis atribuídos:
roles/compute.storageAdmin
roles/storage.objectViewer
Esses papéis mínimos são necessários para a conta de serviço especificada para a sinalização
--compute-service-account
. Saiba mais em Conceder os papéis necessários à conta de serviço do Compute Engine.Use o comando
gcloud compute machine-images import
para importar uma imagem de máquina a partir de dispositivos virtuais.gcloud compute machine-images import MACHINE_IMAGE_NAME \ --source-uri=gs:SOURCE_URI \ --os=OS \ --compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=SCOPES
Substitua:
MACHINE_IMAGE_NAME
: nome da imagem de máquina que você quer importar;SOURCE_URI
: caminho para o arquivo OVA ou OVF no Cloud Storage;OS
: sistema operacional do arquivo OVA. Essa sinalização é opcional por padrão, mas pode ser necessária em alguns casos. Recomendamos que você a forneça.TEMP_SERVICE_ACCOUNT_EMAIL
: o endereço de e-mail associado à conta de serviço personalizada criada na etapa anterior. Essa conta de serviço é usada pelas VMs temporárias. Se não for especificada, a VM usará a conta de serviço padrão do Compute Engine.SERVICE_ACCOUNT_EMAIL
: o endereço de e-mail associado à conta de serviço personalizada que será anexada a qualquer VM criada a partir dessa imagem de máquina. Não há restrições de permissão para essa conta de serviço. É possível personalizá-la conforme necessário. Se não for especificada, a conta de serviço padrão do Compute Engine será anexada à VM.SCOPES
: especifique o nível de acesso da opção--service-account
. Se não for especificado, os escopos padrão serão usados. Para mais informações, consulte a sinalização--scopes
.
Adicione o dispositivo virtual ao Cloud Storage.
Crie uma conta de serviço e atribua o mínimo de papéis. Para mais informações sobre como criar contas de serviço, consulte Como criar e gerenciar contas de serviço.
A conta de serviço do Compute Engine especificada precisa ter, no mínimo, os seguintes papéis atribuídos:
roles/compute.storageAdmin
roles/storage.objectViewer
Esses papéis mínimos são necessários para a conta de serviço especificada para o argumento
-compute-service-account
. Saiba mais em Conceder os papéis necessários à conta de serviço do Compute Engine.Envie uma solicitação
POST
para a API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-machine-image-name=MACHINE_IMAGE_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-zone=ZONE", "-compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL", "-service-account=SERVICE_ACCOUNT_EMAIL", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }
Substitua:
PROJECT_ID
: o ID do projeto em que a imagem de máquina será importada;MACHINE_IMAGE_NAME
: o nome da imagem de máquina a ser importada. Por exemplo,my-machine-image
.SOURCE_URI
: o URI do arquivo OVA armazenado no Cloud Storage. Por exemplo,gs://my-bucket/my-machine.ova
.OS
: o sistema operacional do arquivo OVA. Por exemplo,ubuntu-1604
. Essa sinalização é opcional por padrão, mas pode ser necessária em alguns casos. Recomendamos que você a forneça. Para ver uma lista de valores compatíveis, consulte as opções de sinalização--os
no comandogcloud compute instances import
.ZONE
: a zona na qual a imagem da máquina será importada.TEMP_SERVICE_ACCOUNT_EMAIL
: o endereço de e-mail associado à conta de serviço personalizada criada na etapa anterior. Essa conta de serviço é usada pelas VMs temporárias. Se não for especificada, a VM usará a conta de serviço padrão do Compute Engine.SERVICE_ACCOUNT_EMAIL
: o endereço de e-mail associado à conta de serviço personalizada que será anexada a qualquer VM criada a partir dessa imagem de máquina. Não há restrições de permissão para essa conta de serviço. É possível personalizá-la conforme necessário. Se não for especificada, a conta de serviço padrão do Compute Engine será anexada à VM.SCOPES
: especifique o nível de acesso da opção--service-account
. Se não for especificado, os escopos padrão serão usados. Para mais informações, consulte a sinalização--scopes
.
- Saiba mais sobre imagens de máquinas.
- Criar instâncias de VM com base em imagens de máquina
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
Sistemas operacionais compatíveis
Para suporte ao sistema operacional, consulte Detalhes do sistema operacional.
Importar imagens de máquina
É possível importar imagens de máquina de dispositivos virtuais usando a Google Cloud CLI ou o REST (link em inglês).
gcloud
Use o comando
gcloud compute machine-images import
para importar uma imagem de máquina usando dispositivos virtuais.gcloud compute machine-images import MACHINE_IMAGE_NAME \ --source-uri=gs:SOURCE_URI \ --os=OS
Substitua:
Exemplo
Por exemplo, é possível usar o seguinte comando
gcloud
para importar uma imagem de máquina chamadamy-machine-image
a partir de um arquivo OVA de origem chamadomy-ova
que está armazenado no diretóriogs://my-bucket
e executacentos-7
:gcloud compute machine-images import my-machine-image \ --source-uri=gs://my-bucket/my-ova/ \ --os=centos-7
REST
Importar imagens de máquina com modificações de OVF
CPU e memória personalizadas
gcloud
Para substituir a configuração de CPU ou memória especificada no arquivo OVF, siga as etapas da Google Cloud CLI para importar uma imagem de máquina e especifique o
--custom-cpu
e--custom-memory
.Exemplo
Uma imagem de máquina chamada
my-machine-image
tem as seguintes substituições aplicadas às configurações no arquivo OVF:Para importar
my-machine-image
com essas substituições, execute o seguinte comando:gcloud compute machine-images import my-machine-image \ --os=ubuntu-1404 --source-uri=gs://my-bucket/Ubuntu.ova \ --custom-cpu=2 --custom-memory=2048MB
REST
Para substituir a configuração de CPU ou memória especificada no arquivo OVF, siga as etapas da API Compute Engine para importar uma imagem de máquina e especifique o argumento
-machine-type
. Esse-machine-type
representa um tipo de máquina predefinido ou um tipo personalizado a ser usado.Exemplo
Uma imagem de máquina chamada
my-machine-image
tem as seguintes substituições aplicadas às configurações no arquivo OVF:Para importar
my-machine-image
com essas substituições, faça a seguinte solicitação para a API Compute Engine.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-machine-image-name=my-machine-image", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-os=ubuntu-1404", "-machine-type=custom-2-2048", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }
Substitua
PROJECT_ID
pela ID do seu projeto.Redes personalizadas
gcloud
Para configurar uma rede personalizada, siga as etapas da Google Cloud CLI para importar uma imagem de máquina e especifique uma sinalização
--network
. Se a rede estiver configurada com um modo de sub-rede personalizado, especifique também as sinalizações--subnet
e--zone
.Exemplo
Uma imagem de máquina chamada
my-machine-image
tem as seguintes substituições aplicadas às configurações no arquivo OVF:Para importar
my-machine-image
com essas substituições, execute o seguinte comando de exemplo:gcloud compute machine-images import my-machine-image \ --os=ubuntu-1404 \ --source-uri=gs://my-bucket/Ubuntu.ova \ --network=custom-vpc-network \ --subnet=company-vpc-us-east1-c \ --zone=us-east1-c
REST
Para usar uma rede personalizada, siga as etapas da API Compute Engine para importar uma imagem de máquina e especificar um argumento
-network
. Se a rede estiver configurada com um modo de sub-rede personalizado, você precisará especificar também os argumentos-subnet
e-zone
.Exemplo
Uma imagem de máquina chamada
my-machine-image
tem as seguintes substituições aplicadas às configurações no arquivo OVF:Para importar
my-machine-image
com essas substituições, faça a seguinte solicitação para a API Compute Engine.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-machine-image-name=my-machine-image", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-os=ubuntu-1404", "-zone=us-central1-c", "-network=custom-vpc-network", "-subnet=company-vpc-us-east1-c", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUsILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }
Substitua
PROJECT_ID
pela ID do seu projeto.Importar uma imagem de máquina em uma rede que não permite IP externo
Para importar uma imagem de máquina usando uma rede que não permite endereços IP externos, siga estas etapas:
gcloud
Use o comando
gcloud compute machine-images import
com a sinalização--no-address
.gcloud compute machine-images import MACHINE_IMAGE_NAME \ --source-uri=SOURCE_URI \ --os=OS \ --zone=ZONE \ --no-address
Substitua:
REST
Use a API Cloud Build e especifique o argumento
-no-external-ip
.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-machine-image-name=MACHINE_IMAGE_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-zone=ZONE", "-no-external-ip", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":"gce-ovf-machine-image-import" }
Substitua:
Importar uma imagem de máquina usando contas de serviço personalizadas
Durante uma importação de imagem de máquina, as instâncias de máquina virtual (VM, na sigla em inglês) temporárias são criadas no projeto. A ferramenta de importação nessas VMs temporárias precisa ser autenticada.
Uma conta de serviço é uma identidade anexada a uma VM. Os tokens de acesso da conta de serviço podem ser acessados pelo servidor de metadados de VM e usados para autenticar a ferramenta de importação de imagens na VM.
Por padrão, o processo de importação usa a conta de serviço padrão do Compute Engine. No entanto, se a conta de serviço padrão do Compute Engine estiver desativada no projeto ou se você quiser usar uma conta de serviço personalizada do Compute Engine, será necessário criar uma conta de serviço e especificá-la para o processo de importação.
gcloud
REST
A seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2024-12-09 UTC.
-