Se você tiver discos virtuais no ambiente local com software e configurações necessários (às vezes chamados de discos dourados ou imagens douradas), poderá economizar tempo importando esses discos virtuais no Compute Engine e usar a imagem resultante para criar máquinas virtuais. A ferramenta de importação é compatível com a maioria dos formatos de arquivo de disco virtual, incluindo VMDK e VHD.
Se você exportou o disco do Compute Engine, é possível criar imagens do disco.
Para informações sobre como criar um sistema automatizado para migrar várias máquinas virtuais (VMs, na sigla em inglês), consulte Como migrar VMs para o Compute Engine.
Antes de começar
- Se houver uma política de imagem confiável
definida para o projeto em que a imagem será importada, adicione
projects/compute-image-import
eprojects/compute-image-tools
à lista de editores permitidos. - Saiba como atender aos requisitos antes de importar imagens 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:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
Se você estiver importando um disco virtual executando o RHEL, o modelo Licenças adquiridas pelo usuário (BYOL) só será aceito se o pacote python-boto (em inglês) estiver instalado no disco virtual antes da importação.
Os sistemas operacionais em discos virtuais precisam ser compatíveis com ACPI.
Esse recurso não é compatível com projetos protegidos com o VPC Service Controls. Para esses ambientes, consulte Como importar discos de inicialização manualmente.
Não é possível importar imagens Arm usando a ferramenta de importação de imagens. Para importar imagens Arm, siga as instruções passo a passo conforme descrito em Importar discos de inicialização manualmente.
O Compute Engine não é compatível com a importação de discos criptografados por software porque eles não podem ser lidos sem uma chave. Especificamente, não é possível importar imagens do Windows 10 e mais recentes que usam a criptografia de unidade do BitLocker.
Os discos virtuais do Linux precisam usar
grub
como carregador de inicialização.Os discos virtuais do Linux precisam atender aos mesmos requisitos das imagens personalizadas, incluindo compatibilidade com dispositivos do controlador de armazenamento Virtio-SCSI.
Quando instalado nos discos virtuais do Windows, o software de lista de permissões de aplicativos, como o CB Protection da Carbon Black (em inglês), pode causar uma falha no processo de importação. Talvez seja necessário desinstalar esse software antes da importação.
Em VMs baseadas em Windows, o adaptador de loopback do Microsoft KM-TEST impede o acesso de rede ao servidor de metadados. É necessário desativá-lo ou removê-lo antes da importação.
- No Console do Google Cloud, faça upload do arquivo do disco virtual para o Cloud Storage.
Acesse a página Criar uma imagem.
Especifique um Nome para a imagem.
Em Origem, selecione Disco virtual (VMDK, VHD...).
Navegue até o local de armazenamento do arquivo do Cloud Storage ou insira-o manualmente.
Selecione o sistema operacional disponível no disco importado. Também é possível fazer as alterações a seguir:
Instale pacotes de convidado. O Google recomenda que você instale o ambiente de convidado. Para mais informações sobre o ambiente de convidado, clique aqui.
Para sistemas operacionais Windows ou Red Hat Enterprise Linux (RHEL), também é possível escolher uma opção de licenciamento. Além disso, é possível trazer sua própria licença ou permitir que o Compute Engine forneça uma. Para mais informações sobre como trazer sua própria licença no Windows, consulte Trazer sua própria licença.
Opcional: especifique mais propriedades para sua imagem. Por exemplo, organize essa imagem como parte de uma família de imagens.
Clique em Criar para importar a imagem.
IMAGE_NAME
: o nome da imagem de destinoSOURCE_FILE
: o arquivo de disco virtual. Pode ser um arquivo local ou armazenado no Cloud Storage. Se o disco virtual for um arquivo local, forneça um caminho absoluto ou relativo. Se o arquivo de disco virtual já estiver armazenado no Cloud Storage, será preciso que ele exista em um bucket do Cloud Storage do projeto usado no processo de importação. Especifique o caminho completo do arquivo no formatogs://BUCKET_NAME/OBJECT_NAME
.Adicione o disco virtual ao Cloud Storage.
Envie uma solicitação
POST
para a API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-timeout=7000s", "-client_id=api" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Substitua:
PROJECT_ID
: o ID do projeto em que a imagem será importada.IMAGE_NAME
: o nome da imagem a ser importada.SOURCE_FILE
: o URI da imagem no Cloud Storage, por exemplo,gs://my-bucket/my-image.vmdk
.
Para outros valores
args
que podem ser fornecidos, consulte a seção de sinalizações opcionais da página do GitHub de importação de imagens de VM (em inglês).Exemplo de resposta
A resposta de amostra a seguir é parecida com a resposta retornada:
{ "name": "operations/build/myproject-12345/operation-1578608233418", "metadata": { "@type": "type.googleapis.com/google.devtools.cloudbuild.v1.BuildOperationMetadata", "build": { "id": "3a2055bc-ccbd-4101-9434-d376b88b8940", "status": "QUEUED", "createTime": "2019-09-20T15:55:29.353258929Z", "steps": [ { "name": "gcr.io/compute-image-import/gce_vm_image_import:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-timeout=7000s", "-image_name=my-image", "-client_id=api", "-data-disk", "-source_file=gs://my-bucket/my-image.vmdk" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://123456.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=123456" } }
Há algumas maneiras de monitorar seu build:
- Execute uma solicitação projects.builds.get usando o
build-id
retornado. - Revise os registros hospedados no
logUrl
fornecido.
IMAGE_NAME
: o nome da imagem a ser criada.SOURCE_FILE
: um arquivo local ou o URI do Cloud Storage do disco virtual a ser importado.OS
: o SO da imagem de disco a ser importada. A licença do SO é inferida a partir do valor dessa sinalização. Não há uma sinalização explícita para fornecer informações de licença durante a importação. Para uma lista de valores compatíveis, consulte a sinalização--os
.- No Console do Google Cloud, faça upload do arquivo do disco virtual para o Cloud Storage.
Acesse a página Criar uma imagem.
Especifique um Nome para a imagem.
Em Origem, selecione Disco virtual (VMDK, VHD...).
Navegue até o local de armazenamento do arquivo do Cloud Storage ou insira-o manualmente.
No sistema operacional, selecione Nenhum sistema operacional. Apenas dados.
Opcional: especifique mais propriedades para sua imagem. Por exemplo, organize essa imagem como parte de uma família de imagens.
Clique em Criar para importar a imagem.
IMAGE_NAME
: o nome da imagem de destinoSOURCE_FILE
: o arquivo de disco virtual. Esse arquivo pode ser local ou armazenado no Cloud Storage. Se o disco virtual for um arquivo local, será possível usar um caminho absoluto ou relativo. Se o arquivo de disco virtual já estiver armazenado no Cloud Storage, será preciso que ele exista em um bucket do Cloud Storage do projeto usado no processo de importação. Especifique o caminho completo do arquivo no formatogs://BUCKET_NAME/OBJECT_NAME
.Adicione o disco virtual ao Cloud Storage.
Envie uma solicitação
POST
para a API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-timeout=7000s", "-client_id=api", "-data_disk" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Substitua os seguintes valores
args
:PROJECT_ID
: o ID do projeto em que a imagem será importada.IMAGE_NAME
: o nome da imagem a ser importada.SOURCE_FILE
: o URI da imagem no Cloud Storage, por exemplo,gs://my-bucket/my-image.vmdk
.
Adicione o disco virtual ao Cloud Storage.
O processo de importação de imagem requer que os gerenciadores de pacotes sejam instalados no sistema operacional do disco virtual. 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 o disco virtual usando a CLI Google Cloud ou REST.
Quando você importa um disco virtual, VMs temporárias são criadas no projeto. Para garantir que essas VMs temporárias não recebam endereços IP externos, é necessário especificar uma sinalização ou um argumento adicional.
Para mais informações, clique nas seguintes guias:
IMAGE_NAME
: o nome da imagem de disco que você quer criar.SOURCE_FILE
: o arquivo de disco virtual. Pode ser um arquivo local ou armazenado no Cloud Storage. Se o disco virtual for um arquivo local, forneça um caminho absoluto ou relativo. Se o arquivo de disco virtual já estiver armazenado no Cloud Storage, será preciso que ele exista em um bucket do Cloud Storage do projeto usado no processo de importação. Especifique o caminho completo do arquivo no formatogs://BUCKET_NAME/OBJECT_NAME
.ZONE
: a zona onde a imagem será criada. Se ficar em branco, a zona padrão do projeto será usada.PROJECT_ID
: o ID do projeto em que a imagem será importada.IMAGE_NAME
: o nome da imagem a ser importada.SOURCE_FILE
: o URI da imagem no Cloud Storage. Por exemplo,gs://my-bucket/my-image.vmdk
. para o comandogcloud compute images import
.ZONE
: a zona onde a imagem será criada. Se ficar em branco, a zona padrão do projeto será usada.- Se o processo de importação de imagem não detectar o carregador de inicialização UEFI durante a importação.
Se o disco for de inicialização dupla e tiver uma combinação de: hybrid-mbr + UEFI ou protective-mbr + UEFI. Para discos com inicialização dupla, a importação pode adotar como padrão a inicialização não UEFI.
IMAGE_NAME
: o nome da imagem a ser importada.SOURCE_FILE
: o URI da imagem no Cloud Storage, por exemplo,gs://my-bucket/my-image.vmdk
.Adicione o disco virtual ao Cloud Storage.
Envie uma solicitação
POST
para a API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-uefi_compatible", "-timeout=7000s", "-client_id=api" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Substitua:
PROJECT_ID
: o ID do projeto em que a imagem será importada.IMAGE_NAME
: o nome da imagem a ser importada.SOURCE_FILE
: o URI da imagem no Cloud Storage, por exemplo,gs://my-bucket/my-image.vmdk
.
IMAGE_NAME
: o nome da imagem a ser importada.SOURCE_FILE
: o arquivo de disco virtual. Pode ser um arquivo local ou armazenado no Cloud Storage. Se o disco virtual for um arquivo local, forneça um caminho absoluto ou relativo. Se o arquivo de disco virtual já estiver armazenado no Cloud Storage, será preciso que ele exista em um bucket do Cloud Storage do projeto usado no processo de importação. Especifique o caminho completo do arquivo no formatogs://BUCKET_NAME/OBJECT_NAME
.SERVICE_PROJECT_ID
: ID do projeto em que a imagem será importada;ZONE
: zona para onde quer importar a imagem. Essa zona precisa corresponder à região da sub-rede. Por exemplo, seSUBNET
forus-west1
. É necessário que a zona de importação seja uma das seguintes opções:us-west1-a
,us-west1-b
ouus-west1-c
.NETWORK
: caminho completo de uma rede VPC compartilhada. Por exemplo,projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME
.SUBNET
: caminho completo de uma sub-rede VPC compartilhada. Por exemplo,projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
.Comando de amostra
gcloud compute images import example-image \ --source-file gs://source-bucket/source-file.vmdk \ --project my-image-project \ --zone us-west1-c \ --network projects/my-vpc-project/global/networks/my-shared-vpc \ --subnet projects/my-vpc-project/regions/us-west1/subnetworks/my-shared-subnet
Adicione o disco virtual ao Cloud Storage.
Envie uma solicitação
POST
para a API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-zone=ZONE", "-network=NETWORK", "-subnet=SUBNET", "-timeout=7000s", "-client_id=api" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Substitua os seguintes valores
args
:SERVICE_PROJECT_ID
: ID do projeto em que a imagem será importada;IMAGE_NAME
: o nome da imagem a ser importada.SOURCE_FILE
: URI da imagem no Cloud Storage, por exemplo,gs://my-bucket/my-image.vmdk
.ZONE
: zona para onde quer importar a imagem. Essa zona precisa corresponder à região da sub-rede. Por exemplo, seSUBNET
forus-west1
. É necessário que a zona de importação seja uma das seguintes opções:us-west1-a
,us-west1-b
ouus-west1-c
.NETWORK
: caminho completo de uma rede VPC compartilhada. Por exemplo,projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME
.SUBNET
: caminho completo de uma sub-rede VPC compartilhada. Por exemplo,projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME
.
Adicione o disco 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
Saiba mais em Conceder os papéis necessários à conta de serviço do Compute Engine.
Use o
gcloud compute images import
para importar a imagem.gcloud compute images import IMAGE_NAME \ --source-file SOURCE_FILE \ --compute-service-account SERVICE_ACCOUNT_EMAIL
Substitua:
IMAGE_NAME
: o nome da imagem de destinoSOURCE_FILE
: o arquivo de disco virtual. Pode ser um arquivo local ou armazenado no Cloud Storage. Se o disco virtual for um arquivo local, forneça um caminho absoluto ou relativo. Se o arquivo de disco virtual já estiver armazenado no Cloud Storage, será preciso que ele exista em um bucket do Cloud Storage do projeto usado no processo de importação. Especifique o caminho completo do arquivo no formatogs://BUCKET_NAME/OBJECT_NAME
.SERVICE_ACCOUNT_EMAIL
: o endereço de e-mail associado à conta de serviço do Compute Engine criada na etapa anterior.
Exemplo
No exemplo a seguir, importamos um disco virtual de inicialização chamado
my_server.vmdk
armazenado emgs://your_gcs_bucket
usando uma conta de serviço com o e-mailimage-export-service-account@proj-12345.iam.gserviceaccount.com
.gcloud compute images import my-imported-image \ --source-file gs://your_gcs_bucket/my_server.vmdk \ --compute-service-account image-export-service-account@proj-12345.iam.gserviceaccount.com
Adicione o disco 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
Saiba mais em Conceder os papéis necessários à conta de serviço do Compute Engine.
Adicione o disco virtual ao Cloud Storage.
Envie uma solicitação
POST
para a API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-compute_service_account=SERVICE_ACCOUNT_EMAIL", "-timeout=7000s", "-client_id=api" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Substitua:
PROJECT_ID
: o ID do projeto em que a imagem será importada.IMAGE_NAME
: o nome da imagem a ser importada.SOURCE_FILE
: o URI da imagem no Cloud Storage, por exemplo,gs://my-bucket/my-image.vmdk
.SERVICE_ACCOUNT_EMAIL
: o endereço de e-mail associado à conta de serviço do Compute Engine criada na etapa anterior.
IMAGE_NAME
: o nome da imagem de destinoSOURCE_IMAGE_NAME
: o nome da imagem de origem.Para conferir instruções sobre como importar imagens com licenças atuais para o Google Cloud, consulte Como trazer suas próprias licenças.
- Crie uma nova instância de VM que use sua imagem inicializável.
- Compartilhe a imagem entre projetos.
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.
Sistemas operacionais compatíveis
É possível importar discos inicializáveis e não inicializáveis. Para que seus discos virtuais sejam inicializáveis no Compute Engine, eles precisam executar um dos sistemas operacionais compatíveis a seguir.
Compatibilidade com BYOL e BYOS
Se preferir usar sua própria licença de software ou assinatura, importe os dispositivos virtuais com as licenças deles. Para informações sobre os sistemas operacionais compatíveis com BYOL ou BYOS, consulte Detalhes do sistema operacional.
É possível importar imagens com licenças atuais usando o comando
gcloud compute instances import
com a sinalização--byol
.Limitações
Esse recurso tem as seguintes limitações gerais:
Esse recurso tem as seguintes limitações no Linux:
Esse recurso tem as seguintes limitações no Windows:
Permissões
Para ativar uma experiência perfeita ao importar imagens, verifique se você concedeu os papéis necessários do IAM à sua conta, à conta de serviço do Cloud Build e à conta de serviço do Compute Engine. Para mais informações, consulte Conceder papéis necessários do IAM.
Verificar a compatibilidade
Antes de tentar importar o disco para sua VM, faça o download da ferramenta de pré-verificação (em inglês) e execute-a dentro da VM. Ela procura quaisquer problemas de compatibilidade (em inglês) que causem falha no processo de importação ou que impeçam o disco de funcionar corretamente no Compute Engine.
Importar discos virtuais
É possível importar discos virtuais usando a Console do Google Cloud, a CLI do Google Cloud ou a API Cloud Build
Importar um disco virtual inicializável
Para discos de inicialização, não é necessário especificar o sistema operacional, porque a ferramenta de importação detecta automaticamente o sistema operacional para determinar quais drivers e pacotes são necessários. No entanto, se você precisar modificar o sistema operacional detectado, especifique a sinalização
--os
ou o parâmetro-os
. Para uma lista de valores compatíveis, consulte a sinalização--os
.Console
gcloud
Use o comando
gcloud compute images import
para criar uma imagem inicializável do Compute Engine. Embora o Compute Engine possa iniciar a maioria das imagens de disco de inicialização, o comandoimport
garante que o disco tenha os drivers necessários e os pacotes de ambiente de convidado mais recentes, que são necessários para iniciar uma instância e se conectar a ela usando SSH ou RDP.Importe os arquivos do disco virtual de um bucket do Cloud Storage ou da estação de trabalho local.
Se você importar o arquivo do disco virtual da estação de trabalho, a ferramenta de importação fará upload do arquivo para um bucket do Cloud Storage automaticamente.
Se preferir, faça você mesmo o upload do arquivo do disco virtual para o Cloud Storage antes de iniciar o processo de importação. Porém, é necessário fazer o upload do arquivo para um bucket do Cloud Storage no mesmo projeto que será usado no processo.
gcloud compute images import IMAGE_NAME \ --source-file SOURCE_FILE
Substitua:
Se você estiver importando uma imagem com uma licença atual, especifique a sinalização
--byol
da seguinte maneira:gcloud compute images import IMAGE_NAME \ --source-file SOURCE_FILE --byol
Para conferir instruções sobre como importar imagens com licenças atuais para o Google Cloud, consulte Como trazer suas próprias licenças.
Se você especificar um arquivo local, o upload poderá demorar muito, dependendo do tamanho do disco virtual e da velocidade da conexão de rede. A operação de importação pode demorar bastante para ser executada, dependendo do tamanho do disco.
Exemplo
No exemplo a seguir, importamos um disco virtual denominado
my_server.vmdk
armazenado emgs://your_gcs_bucket
.gcloud compute images import my-imported-image \ --source-file gs://your_gcs_bucket/my_server.vmdk
Parâmetros opcionais
Por padrão, os pacotes de ambiente de convidado são adicionados a todas as imagens de disco de inicialização importadas. Se você não quiser esses pacotes, adicione a flag
--no-guest-environment
ao comando de importação.REST
Importar e anexar uma licença para um disco virtual
Para incluir uma licença ao importar uma imagem, use o seguinte comando
gcloud compute images import
.gcloud compute images import IMAGE_NAME \ --source-file=SOURCE_FILE --os=OS
Substitua:
Para mais informações sobre como visualizar e anexar licenças, consulte Visualizar e anexar licenças.
Importar um disco virtual não inicializável
Console
gcloud
É possível usar o comando
gcloud compute images import
para criar uma imagem do Compute Engine que não seja inicializável. Se o disco virtual não tiver um sistema operacional inicializável instalado, especifique a sinalização--data-disk
. Esse procedimento ignora a etapa que instala os drivers e os pacotes do ambiente de convidado para tornar a imagem inicializável no Compute Engine.gcloud compute images import IMAGE_NAME \ --source-file SOURCE_FILE \ --data-disk
Substitua:
Exemplo 1: importar um disco virtual não inicializável do Cloud Storage
No exemplo a seguir, importamos um disco virtual chamado
my_disk.vmdk
armazenado emgs://your_gcs_bucket
.gcloud compute images import my-imported-image \ --source-file gs://your_gcs_bucket/my_disk.vmdk --data-disk
Exemplo 2: importar um arquivo VMDK grande especificando o valor do tempo limite
O tempo limite padrão do processo de importação é duas horas. Arquivos grandes do VMDK podem levar até 24 horas para serem importados. Se você não especificar a sinalização
--timeout
ao importar esses arquivos grandes, o processo falhará após duas horas.No exemplo a seguir, importamos um disco virtual denominado
my_disk.vmdk
armazenado emgs://your_gcs_bucket
. O valor do tempo limite para essa importação é 24 horas.gcloud compute images import my-imported-image \ --source-file gs://your_gcs_bucket/my_disk.vmdk --data-disk --timeout=24h
REST
Importar discos usando redes que não aceitam endereços IP externos
Para importar discos virtuais usando uma rede que não permite IPs externos, conclua as seguintes etapas:
gcloud
Use o comando
gcloud compute images import
com a sinalização--no-address
para importar seu disco virtual.gcloud compute images import IMAGE_NAME \ --source-file=SOURCE_FILE \ --zone=ZONE \ --no-address
Substitua:
REST
Envie uma solicitação
POST
para a API Cloud Build e especifique o argumento-no-external-ip
.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "steps":[ { "args":[ "-image_name=IMAGE_NAME", "-source_file=SOURCE_FILE", "-zone=ZONE", "-no_external_ip", "-timeout=7000s", "-client_id=api" ], "name":"gcr.io/compute-image-import/gce_vm_image_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "timeout":"7200s", "tags":[ "gce-daisy", "gce-daisy-image-import" ] }
Substitua:
Importar um disco virtual com o carregador de inicialização UEFI
Para a maioria dos discos virtuais, o Compute Engine pode detectar e importar discos com êxito usando um carregador de inicialização UEFI sem a necessidade de uma sinalização adicional.
No entanto, para cenários como o seguinte, pode ser necessário forçar uma inicialização UEFI durante a importação.
gcloud
É possível usar o comando
gcloud compute images import
para forçar uma importação a usar a inicialização UEFI.gcloud compute images import IMAGE_NAME \ --source-file=SOURCE_FILE \ --guest-os-features=UEFI_COMPATIBLE
Substitua:
Exemplo
No exemplo a seguir, importamos um disco virtual denominado
my-disk.vmdk
armazenado emgs://my-gcs-bucket/
e força o uso da inicialização UEFI.gcloud compute images import my-imported-image \ --source-file gs://my-gcs-bucket/my-disk.vmdk \ --guest-os-features=UEFI_COMPATIBLE
REST
Para forçar uma importação a usar a inicialização UEFI, use a API Cloud Build e especifique o argumento
-uefi_compatible
. Para isso, siga as seguintes etapas:Importar um disco virtual usando a VPC compartilhada
Antes de importar um disco virtual que usa uma VPC compartilhada, é preciso adicionar o papel
compute.networkUser
à conta de serviço do Cloud Build. Saiba mais em Conceder os papéis necessários à conta de serviço do Cloud Build.gcloud
Use o comando
gcloud compute images import
para importar o disco virtual.gcloud compute images import IMAGE_NAME \ --source-file SOURCE_FILE \ --project SERVICE_PROJECT_ID \ --zone ZONE \ --network NETWORK \ --subnet SUBNET
Substitua:
REST
Como importar um disco virtual usando uma conta de serviço personalizada do Compute Engine
Durante uma importação de imagem, as instâncias temporárias de máquina virtual (VM) são criadas no seu 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 instância e usados para autenticar a ferramenta de importação de imagens na VM.
Por padrão, o processo de importação usa o Agente de serviço padrão do Compute Engine do projeto. 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
Tornar uma imagem inicializável
Se você tiver uma imagem personalizada do Compute Engine que tenha um sistema operacional inicializável, mas não tenha os drivers ou pacotes de ambiente convidados do Compute Engine, poderá usar a ferramenta de importação de imagens para torná-la inicializável no Compute Engine.
Use a sinalização
--source-image
para especificar uma imagem personalizada que será inicializável, em vez de usar a sinalização--source-file
, que especifica um novo disco para importar.gcloud compute images import IMAGE_NAME \ --source-image SOURCE_IMAGE_NAME
Substitua:
Comando de amostra
No exemplo a seguir, transformamos uma imagem do Compute Engine denominada
my-image
em uma imagem inicializável chamadamy-bootable-image
. Neste exemplo,--os ubuntu-1604
substitui o sistema operacional detectado.gcloud compute images import my-bootable-image \ --source-image my-image \ --os ubuntu-1604
Limpeza de recursos
Há cobranças para os arquivos armazenados no Cloud Storage e as imagens no Compute Engine. A ferramenta de importação envia o arquivo de disco virtual para o Cloud Storage e cria uma imagem personalizada do Compute Engine.
Depois de verificar se a imagem foi importada e inicializada corretamente como uma instância do Compute Engine, você pode excluir o arquivo de disco virtual do Cloud Storage. A ferramenta imprime o URI do arquivo à medida que o carrega no Cloud Storage. Esse URI tem o seguinte formato:
gs://BUCKET_NAME/tmpimage/IMAGE_NAME
.Se você importou uma imagem usando a sinalização
--data-disk
e executou a ferramentaimport
uma segunda vez com a sinalização--source-image
para tornar essa imagem inicializável, a primeira imagem ainda existirá. Se você não precisar da imagem, pense em excluí-la. Se você especificar o mesmo nome de imagem para as sinalizações--image
e--source-image
, a imagem será substituída automaticamente, sem necessidade de nenhuma outra limpeza.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-09-24 UTC.
-