Um dispositivo virtual é um pacote que contém imagens de disco e configurações de hardware para uma instância de máquina virtual (VM).
Um formato amplamente utilizado para dispositivos virtuais é o OVF.
Quando você empacota dispositivos virtuais nesse formato, você gera um pacote OVF. Um pacote OVF é uma pasta que contém um arquivo descritor .ovf
e uma coleção de outros recursos, como discos. Quando esse pacote é arquivado em um único arquivo, ele é chamado de arquivo OVA.
É possível importar VMs no formato OVF para o Compute Engine, seja um pacote OVF ou apenas um arquivo OVA. Para verificar se o uso de um dispositivo virtual é a melhor opção para seu caso de uso, consulte Escolher um caminho de migração.
Quando você importa um dispositivo virtual, o processo de importação usa as informações armazenadas no arquivo descritor para criar e iniciar uma VM no Compute Engine.
No Compute Engine, é possível importar arquivos OVA ou OVF da seguinte maneira:
- Importe dispositivos virtuais como uma instância. Consulte Importar um arquivo OVA e Importar um arquivo OVF.
- Importe dispositivos virtuais como uma imagem de máquina. Consulte Importar uma imagem de máquina de um dispositivo virtual.
Antes de começar
- Se o projeto em que você quer importar o dispositivo virtual 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.
- 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:
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Os discos virtuais precisam estar nos formatos VMDK ou VHD.
Os discos virtuais não podem ser criptografados.
Para verificar se sua máquina virtual atende aos requisitos, execute a ferramenta de pré-verificação (em inglês).
- Para todos os sistemas operacionais Windows, é preciso instalar o PowerShell versão 3 ou mais recente. As versões do PowerShell anteriores à 3.0 podem causar problemas com os scripts de inicialização e desligamento usados no processo de importação.
Para todas as distribuições do Linux, o disco de inicialização precisa atender aos seguintes requisitos:
- O disco de inicialização precisa ter o GRUB instalado.
- O disco de inicialização não pode abranger vários discos físicos. Um disco particionado usando um Gerenciador de volume lógico (LVM, na sigla em inglês) não é compatível. Se o disco abrange vários discos físicos, a VM criada a partir do arquivo OVF pode não ser inicializada no Compute Engine.
- Os arquivos OVF precisam fornecer portabilidade
Level 1
, conforme descrito neste documento (em inglês). Dispositivos virtuais compatíveis com a portabilidadeLevel 2
podem ser importados, mas extensões personalizadas, como detalhes específicos do hipervisor de origem, são ignoradas durante o processo de importação. - O arquivo OVF pode conter apenas uma máquina virtual. Se houver mais de uma máquina virtual, somente a primeira será importada.
- O primeiro disco no arquivo OVF precisa ser inicializável.
- Informações de discos virtuais recuperadas do elemento
DiskSection
do pacote OVF. CPU e memória recuperadas de
ResourceAllocationSection
do pacote OVF.Se as configurações de CPU ou memória estiverem fora dos limites do intervalo compatível com o Compute Engine, o processo de importação redefinirá os valores para o máximo suportado.
Detalhes do disco de inicialização recuperados do elemento
BootDeviceSection
do pacote OVF.Detalhes do SO convidado recuperados do elemento
OperatingSystemSection
do pacote OVF.As informações do SO convidado são usadas para instalar os drivers e os pacotes de ambiente de convidado corretos na instância importada. Se as informações do SO convidado encontradas no OVF estiverem incorretas, a importação falhará. É possível usar a sinalização
--os
para modificar as informações do sistema operacional convidado.NetworkSection
AnnotationSection
ProductSection
EulaSection
StartupSection
DeploymentOptionSection
InstallSection
EnvironmentFilesSection
SharedDiskSection
ScaleOutSection
PlacementGroupSection
PlacementSection
EncryptionSection
- Projeto de origem: o projeto em que o arquivo OVA ou OVF é armazenado.
- Projeto de destino: o projeto em que você quer criar a VM ou a imagem de máquina.
- No projeto de origem, localize o bucket do Cloud Storage.
No bucket do Cloud Storage, conceda
roles/storage.objectViewer
às seguintes contas de serviço:- Conta de serviço do Cloud Build para o projeto de destino: essa
conta de serviço tem o formato
DESTINATION_PROJECT_NUMBER@cloudbuild.gserviceaccount.com
- Conta de serviço do Compute Engine para o projeto de destino: essa
conta de serviço tem o formato
DESTINATION_PROJECT_NUMBER-compute@developer.gserviceaccount.com
Substitua
DESTINATION_PROJECT_NUMBER
pelo número do projeto de destino.Para saber como conceder acesso a um bucket do Cloud Storage, consulte Como adicionar um principal a uma política no nível do bucket.
- Conta de serviço do Cloud Build para o projeto de destino: essa
conta de serviço tem o formato
Importe o dispositivo virtual ou a imagem de máquina.
- Faça upload do dispositivo virtual para o Cloud Storage.
Para importar um arquivo OVA do Cloud Storage para o Compute Engine, use o comando
gcloud compute instances import
.gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVA_FILE
Substitua:
VM_NAME
: o nome da instância que você quer criarPATH_TO_OVA_FILE
: o caminho para o arquivo OVA no Cloud Storage
Exemplos
Por exemplo, para importar um arquivo OVA
Ubuntu.ova
e criar uma instância denominadamy-instance
, execute o comando a seguir:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova
Se as informações do SO convidado no arquivo descritor do OVF estiverem incorretas ou se você quiser substituir o SO detectado, é possível especificar o sistema operacional adicionando a sinalização
--os
. Para ver uma lista de valores compatíveis, revise as opções de sinalização--os
do comandogcloud compute instances import
.Por exemplo, para importar um arquivo OVA
Ubuntu.ova
e criar uma instância chamadamy-instance
que executa o Ubuntu 16.04, execute o seguinte comando:gcloud compute instances import my-instance \ --os=ubuntu-1604 --source-uri=gs://my-bucket/Ubuntu.ova
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":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Substitua:
PROJECT_ID
: o ID do projeto em que você quer importar o arquivo OVA.VM_NAME
: o nome da instância de máquina virtual a ser criada. Por exemplo,my-instance
.SOURCE_URI
: o URI do arquivo OVA armazenado no Cloud Storage. Por exemplo,gs://my-bucket/my-instance.ova
.ZONE
: a zona em que a instância de VM será criada. Se ficar em branco, a zona padrão do projeto será usada.
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).Exemplo de resposta
A resposta de exemplo a seguir é parecida com a saída 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-12-30T19:06:03.968694865Z", "steps": [ { "name": "gcr.io/compute-image-tools/gce_ovf_import:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/my-instance.ova", "-zone=asia-northeast2", "-client-id=api", "-timeout": "7056s" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://12345.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=myproject-12345", "tags": [ "gce-ovf-import" ] } } }
Para monitorar seu build, use um dos seguintes métodos:
- Execute uma solicitação projects.builds.get usando o
build-id
retornado. - Revise os registros hospedados no
logUrl
fornecido.
- Faça upload do dispositivo virtual para o Cloud Storage.
Para importar um arquivo OVF do Cloud Storage para o Compute Engine, use o comando
gcloud compute instances import
.Se o diretório contiver apenas um arquivo OVF, é possível fornecer o caminho para o arquivo descritor ou para o diretório que contém o arquivo OVF.
Para importar um arquivo OVF usando o caminho para o arquivo descritor, execute o comando a seguir:
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_FILE
Para importar um arquivo OVF usando o caminho do diretório, execute o comando a seguir:
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_DIRECTORY
Substitua:
VM_NAME
: o nome da instância que será criadaPATH_TO_OVF_FILE
: o caminho para o arquivo OVF no Cloud StoragePATH_TO_OVF_DIRECTORY
: o caminho para o diretório que contém o arquivo OVF no Cloud Storage
Exemplos
Para importar um arquivo OVF
Ubuntu.ovf
do diretóriomy-ovf-directory
, que cria uma instância chamadamy-instance
, execute o comando abaixo:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
Para importar um arquivo OVF do diretório
my-ovf-directory
, que cria uma instância chamadamy-instance
, execute o seguinte comando:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory
Se as informações do SO convidado no arquivo descritor do OVF estiverem incorretas ou se você quiser substituir o SO detectado, é possível especificar o sistema operacional adicionando a sinalização
--os
. Para ver uma lista de valores compatíveis, revise as opções de sinalização--os
do comandogcloud compute instances import
. Por exemplo, para importar um arquivo OVFUbuntu.ovf
e criar uma instância chamadamy-instance
que executa o Ubuntu 16.04, execute o comando a seguir:gcloud compute instances import my-instance \ --os=ubuntu-1604 \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
Adicione o dispositivo virtual ao 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":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-os=OS", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Substitua:
PROJECT_ID
: o ID do projeto em que você quer importar o arquivo OVA.VM_NAME
: o nome da instância de máquina virtual a ser criada. Por exemplo,my-instance
.SOURCE_URI
: o URI do arquivo OVF armazenado no Cloud Storage. Por exemplo,gs://my-bucket/my-instance.ovf
.OS
: o sistema operacional do arquivo OVF. Por exemplo,ubuntu-1604
. A sinalização--os
é opcional por padrão, mas é possível substituir o SO detectado usando essa sinalização. Para ver uma lista de valores compatíveis, revise as opções de sinalização--os
do comandogcloud compute instances import
.ZONE
: a zona em que a instância de VM será criada. Se ficar em branco, a zona padrão do projeto será usada.
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).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-12-30T19:06:03.968694865Z", "steps": [ { "name": "gcr.io/compute-image-tools/gce_ovf_import:release", "env": [ "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940" ], "args": [ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/my-instance.ovf", "-os=ubuntu-1404", "-zone=asia-south1", "-client-id=api", "-timeout": "7056s" ] } ], "timeout": "7200s", "projectId": "myproject-12345", "logsBucket": "gs://12345.cloudbuild-logs.googleusercontent.com", "options": { "logging": "LEGACY" }, "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=myproject-12345", "tags": [ "gce-ovf-import" ] } } }
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.
- Nome da VM:
my-instance
- Rede:
custom-vpc-network
- Sub-rede
company-vpc-us-east1-c
- Zona:
us-east1-c
- Nome da VM:
my-instance-2
- Rede:
my-shared-vpc
- Sub-rede
my-shared-subnet
- Zona:
us-east1-c
Adicione 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.Importe a VM.
gcloud compute instances import my-instance-2 \ --source-uri gs://my-bucket/Ubuntu.ova \ --project SERVICE_PROJECT_ID \ --network projects/HOST_PROJECT_ID/global/networks/my-shared-vpc \ --subnet projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/my-shared-subnet --zone us-east1-c
Substitua:
SERVICE_PROJECT_ID
: ID do projeto para onde quer importar o dispositivo virtual.HOST_PROJECT_ID
: ID do projeto em que a VPC compartilhada está localizada.
- Nome da VM:
my-instance
- Rede:
custom-vpc-network
- Sub-rede
company-vpc-us-east1-c
- Zona:
us-east1-c
- Nome da VM:
my-instance-2
- Rede:
my-shared-vpc
- Sub-rede
my-shared-subnet
- Zona:
us-east1-c
Adicione 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.Crie a solicitação
POST
a seguir para importar a VM.POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance-2", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-zone=us-east1-c", "-network=projects/HOST_PROJECT_ID/global/networks/my-shared-vpc", "-subnet=projects/HOST_PROJECT_ID/regions/us-east1/subnetworks/my-shared-subnet", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Substitua:
SERVICE_PROJECT_ID
: ID do projeto para onde quer importar o dispositivo virtual.HOST_PROJECT_ID
: ID do projeto em que a VPC compartilhada está localizada.
Adicione o dispositivo virtual ao Cloud Storage.
O processo de importação exige que os gerenciadores de pacotes sejam instalados no sistema operacional da VM. 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 instruções detalhadas, consulte Como configurar o Acesso privado do Google.
Importe a VM usando a CLI do Google Cloud ou a REST.
Quando a VM é criada com base em um dispositivo virtual, as VMs temporárias são criadas no seu projeto. Para garantir que essas VMs temporárias não recebam endereços IP externos, é necessário especificar uma sinalização ou um outro argumento.
Para mais informações, clique nas seguintes guias:
VM_NAME
: o nome da instância que você quer criar.SOURCE_URI
: URI do arquivo OVA ou OVF no Cloud Storage. Por exemplo,gs://my-bucket/Ubuntu.ova
.ZONE
: a zona em que o dispositivo virtual será criado. Se ficar em branco, a zona padrão do projeto será usada.PROJECT_ID
: o ID do projeto em que a imagem será importada;VM_NAME
: nome da VM a ser criada.SOURCE_FILE
: o URI da imagem no Cloud Storage; Por exemplo,gs://my-bucket/Ubuntu.ova
.ZONE
: a zona onde a imagem será criada. Se ficar em branco, a zona padrão do projeto será usada.VM_NAME
: o nome da VM a ser criada.SOURCE_URI
: URI do arquivo OVA ou OVF no Cloud Storage. Por exemplo,gs://my-bucket/Ubuntu.ova
.Faça upload do dispositivo virtual para o Cloud Storage.
Na API, crie uma solicitação
POST
para a API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout": "7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_URI", "-uefi-compatible", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Substitua:
PROJECT_ID
: o ID do projeto em que você quer importar o arquivo OVA.VM_NAME
: o nome da instância de máquina virtual a ser criada. Por exemplo,my-instance
.SOURCE_URI
: o URI do arquivo OVA armazenado no Cloud Storage. Por exemplo,gs://my-bucket/my-instance.ova
.ZONE
: a zona em que a instância de VM será criada. Se ficar em branco, a zona padrão do projeto será usada.
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 instances import
para importar o dispositivo virtual.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --zone=ZONE \ --compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL \ --service-account=SERVICE_ACCOUNT_EMAIL \ --scopes=SCOPES
Substitua:
VM_NAME
: o nome da instância que você quer criar.SOURCE_URI
: URI do arquivo OVA ou OVF no Cloud Storage. Por exemplo,gs://my-bucket/Ubuntu.ova
.ZONE
: a zona em que o dispositivo virtual será criado. Se ficar em branco, a zona padrão do projeto será usada.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 à VM criada pelo processo de importação. 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.Na API, crie uma solicitação
POST
para a API Cloud Build.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_FILE", "-compute-service-account=TEMP_SERVICE_ACCOUNT_EMAIL", "-service-account=SERVICE_ACCOUNT_EMAIL", "-zone=ZONE", "-scopes=SCOPES", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Substitua:
PROJECT_ID
: o ID do projeto em que a imagem será importada;VM_NAME
: nome da VM a ser criada.SOURCE_FILE
: o URI da imagem no Cloud Storage; Por exemplo,gs://my-bucket/Ubuntu.ova
.ZONE
: a zona onde a imagem será criada. Se ficar em branco, a zona padrão do projeto será usada.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 à VM criada pelo processo de importação. 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 nós de locatário individual.
- Saiba mais sobre BYOL.
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.
Requisitos
Nesta seção, listamos os requisitos para importar dispositivos virtuais para o Compute Engine.
Requisitos da VM de origem
Os requisitos a seguir precisam ser atendidos pela VM usada para criar o arquivo OVF:
O sistema operacional da VM de origem precisa atender os seguintes requisitos:
Requisitos para arquivos OVF
O arquivo OVF precisa seguir os critérios abaixo:
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.
Configurações importadas pela ferramenta
O padrão OVF especifica o processo de empacotamento de dispositivos virtuais de uma maneira que não precise do provedor de virtualização. Os pacotes de dispositivos virtuais OVF contêm um arquivo de descritor
.ovf
e uma coleção de outros recursos, como discos virtuais.Ao importar um dispositivo virtual OVF para o Compute Engine, as seguintes configurações do arquivo descritor são processadas e importadas:
As VMs importadas são sempre criadas com um único adaptador de rede com um endereço IP externo. Esse adaptador de rede único é usado independentemente das configurações de rede especificadas no arquivo OVF. Para importar uma VM sem endereço IP externo, consulte Como importar uma VM sem endereço IP externo.
Ao importar um dispositivo virtual, as seções a seguir do arquivo descritor não serão importadas:
Limitações
Esse recurso não é compatível com projetos protegidos com o VPC Service Controls.
Sistemas operacionais compatíveis
Também é possível especificar o sistema operacional no elemento
OperatingSystemSection
do arquivo descritor ou especificar a sinalização--os
ao importar o dispositivo virtual usando o comandogcloud compute instances import
.Para informações sobre quais sistemas operacionais são compatíveis, consulte Detalhes do sistema operacional.
Compatibilidade com BYOL e BYOS
Por padrão, os arquivos OVF que usam sistemas operacionais Windows Server e Red Hat Enterprise Linux (RHEL) são importados e configurados para usar o faturamento de SO premium sob demanda, o que gera mais cobranças.
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 dispositivos como licenciados por BYOL usando o comando
gcloud compute instances import
com a sinalização--byol
. Se você estiver especificando manualmente o SO, use a sinalização--os
para especificar um valor que contenha o sufixobyol
do SO convidado que você quer importar. Por exemplo,--os=rhel-8-byol
importa uma imagem do RHEL 8 com uma licença existente.Importar entre projetos
Se o projeto de origem e de destino forem diferentes, as contas de serviço no projeto de destino precisarão acessar o bucket do Cloud Storage no projeto de origem.
Para importar entre projetos, siga estas etapas:
Importar dispositivos virtuais
É possível importar seu dispositivo virtual usando a CLI do Google Cloud ou REST.
Importar um arquivo OVA
gcloud
REST
Importar um arquivo OVF
gcloud
REST
Como importar com configurações personalizadas
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 um arquivo OVA ou um arquivo OVF e especifique as sinalizações
--custom-cpu
e--custom-memory
.Exemplo
Por exemplo, para importar uma instância denominada
my-instance
, que tem 2 CPUs e 2.048 MB de memória, execute o comando a seguir:gcloud compute instances import my-instance \ --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 Cloud Build para importar um OVA ou importar um arquivo OVF e especificar o argumento
-machine-type
. Esse-machine-type
representa um tipo de máquina predefinido ou personalizado a ser usado.Exemplo
Por exemplo, para importar uma instância denominada
my-instance
, que tem 2 CPUs e 2.048 MB de memória, use a solicitação a seguir: SubstituaPROJECT_ID
pelo ID do projeto.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-machine-type=custom-2-2048", "-zone=asia-south1", "-client-id=api", "-timeout=7056s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Redes personalizadas
A rede personalizada precisa ser definida no mesmo projeto em que a imagem está sendo importada.
gcloud
Para usar uma rede personalizada, siga as etapas da CLI do Google Cloud para importar um OVA ou um arquivo OVF e especifique uma sinalização
--network
. Se a rede estiver configurada com um modo de sub-rede personalizado, você precisará especificar também as sinalizações--subnet
e--zone
.Exemplo 1: como uma rede personalizada
Por exemplo, suponha as seguintes propriedades:
Execute o comando a seguir para importar uma instância com as propriedades anteriores. Substitua
SERVICE_PROJECT_ID
pelo ID do projeto para onde quer importar o dispositivo virtual.gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova \ --project SERVICE_PROJECT_ID \ --network custom-vpc-network \ --subnet company-vpc-us-east1-c \ --zone us-east1-c
Exemplo 2: com uma rede personalizada (VPC compartilhada)
Por exemplo, suponha as seguintes propriedades:
Para importar uma VM com as propriedades anteriores, siga as etapas a seguir:
REST
Para usar uma rede personalizada, siga as etapas da API Cloud Build para importar um OVA ou importar um arquivo OVF e especificar um argumento
-network
. Se a rede estiver configurada com um modo de sub-rede personalizado, especifique também os argumentos-subnet
e-zone
.Exemplo: com uma rede personalizada
Por exemplo, suponha as seguintes propriedades:
Crie a solicitação
POST
a seguir para importar uma instância com as propriedades anteriores. SubstituaSERVICE_PROJECT_ID
pelo ID do projeto para onde quer importar o dispositivo virtual.POST https://cloudbuild.googleapis.com/v1/projects/SERVICE_PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=my-instance", "-ovf-gcs-path=gs://my-bucket/Ubuntu.ova", "-zone=us-east1-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=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Exemplo 2: com uma rede personalizada (VPC compartilhada)
Por exemplo, suponha as seguintes propriedades:
Para importar uma VM com as propriedades anteriores, siga as etapas a seguir:
Importar uma VM usando redes que não permitem endereços IP externos
Para importar uma VM usando redes que não permitem endereços IP externos, siga estas etapas:
gcloud
Para importar um dispositivo virtual do Cloud Storage para o Compute Engine, use o comando
gcloud compute instances import
com a sinalização--no-address
.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --zone=ZONE \ --no-address
Substitua:
REST
É possível importar uma VM sem IP externo usando a API Cloud Build com uma sobreposição para esse IP.
Para modificar as configurações de IP externo especificadas no arquivo OVF, siga as etapas da API Cloud Build para importar um OVA ou importar um arquivo OVF e especifique o argumento
-no-external-ip
.POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds { "timeout":"7200s", "steps":[ { "args":[ "-instance-names=VM_NAME", "-ovf-gcs-path=SOURCE_FILE", "-no-external-ip", "-zone=ZONE", "-client-id=api", "-timeout=7000s" ], "name":"gcr.io/compute-image-tools/gce_ovf_import:release", "env":[ "BUILD_ID=$BUILD_ID" ] } ], "tags":[ "gce-ovf-import" ] }
Substitua:
Importar um arquivo OVA com o carregador de inicialização UEFI
gcloud
É possível usar o comando
gcloud compute instances import
para forçar uma importação a usar a inicialização UEFI.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --guest-os-features=UEFI_COMPATIBLE
Substitua:
REST
É possível importar um arquivo OVA com um carregador de inicialização UEFI usando a API Cloud Build e especificando o argumento
-uefi-compatible
.Importar um dispositivo virtual usando contas de serviço personalizadas
Durante a importação de um dispositivo virtual, as instâncias de máquina virtual (VM) 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 instância 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-09-24 UTC.
-