Un dispositivo virtual es un paquete que contiene imágenes de disco y una configuración de hardware para una instancia de máquina virtual (VM).
El formato OVF es un formato para dispositivos virtuales muy usado y popular.
Cuando empaquetas dispositivos virtuales en el formato OVF, se genera un paquete OVF. Un paquete OVF es una carpeta que contiene un archivo descriptor .ovf
y una colección de otros recursos, como discos. Cuando un paquete OVF se archiva en un archivo único, se lo denomina archivo OVA.
Puedes importar VM que estén en formato OVF a Compute Engine, ya sea que estén en un paquete OVF o en un archivo único OVA. Para verificar si el uso de un dispositivo virtual es la mejor opción en tu caso práctico, consulta Elige una ruta de migración.
Cuando importas un dispositivo virtual, el proceso de importación usa la información almacenada en el archivo descriptor para crear y, luego, iniciar una VM en Compute Engine.
En Compute Engine, puedes importar archivos OVA o archivos OVF de la siguiente manera:
- Importa dispositivos virtuales como una instancia. Consulta Importa un archivo OVA e Importa un archivo OVF.
- Importa dispositivos virtuales como una imagen de máquina. Consulta Importa una imagen de máquina desde un dispositivo virtual.
Antes de comenzar
- Si el proyecto en el que quieres importar el dispositivo virtual tiene una política de imágenes confiables definida, agrega
projects/compute-image-import
yprojects/compute-image-tools
a la lista de publicadores permitidos. - Si importas un dispositivo virtual desde un proyecto diferente, consulta Importa entre proyectos.
- A fin de obtener información sobre cómo cumplir con los requisitos antes de importar imágenes, consulta Requisitos previos para importar y exportar imágenes de VM.
-
Configura la autenticación si aún no lo hiciste.
La autenticación es el proceso mediante el cual se verifica tu identidad para acceder a los servicios y las API de Google Cloud.
Para ejecutar código o muestras desde un entorno de desarrollo local, puedes autenticarte en Compute Engine de la siguiente manera.
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.
- Los discos virtuales deben estar en los formatos VMDK o VHD.
Los discos virtuales no deben estar encriptados.
Para verificar que la VM cumple con los requisitos, puedes ejecutar la herramienta de comprobación previa.
- Para todos los sistemas operativos de Windows, se debe instalar PowerShell versión 3 o posterior. Las versiones anteriores a la versión 3.0 de PowerShell pueden causar problemas con las secuencias de comandos de inicio y cierre usadas durante el proceso de importación.
Para todas las distribuciones de Linux, el disco de arranque debe cumplir con los siguientes requisitos:
- El disco de arranque debe tener GRUB instalado.
- El disco de arranque no debe abarcar varios discos físicos. No se admite un disco particionado mediante un Administrador de volúmenes lógicos (LVM). Si el disco abarca varios discos físicos, es posible que la VM creada a partir del archivo OVF no se inicie en Compute Engine.
- Los archivos OVF deben proporcionar la portabilidad
Level 1
como se describe en el documento de especificación de OVF. Se pueden importar los dispositivos virtuales que cumplen con la portabilidadLevel 2
, pero cualquier extensión personalizada, como los detalles específicos del hipervisor de origen, se ignora durante el proceso de importación. - El archivo OVF debe contener solo una VM. Si hay más de una VM presente, solo se importa la primera.
- El primer disco del archivo OVF debe ser de inicio.
- Discos virtuales. Información recuperada del elemento
DiskSection
del paquete OVF. CPU y memoria. Recuperadas de
ResourceAllocationSection
del paquete OVF.Si las configuraciones de CPU o memoria están fuera de los límites del rango admitido en Compute Engine, en el proceso de importación, se establecen los valores al máximo admitido en Compute Engine.
Disco de arranque. Detalles recuperados de
BootDeviceSection
del paquete OVF.SO invitado. Detalles recuperados del elemento
OperatingSystemSection
del paquete OVF.La información del SO invitado se usa para instalar los controladores correctos y los paquetes del entorno invitado en la instancia importada. Si la información del SO invitado que se encuentra en el OVF es incorrecta, la importación falla. Puedes usar la marca
--os
para anular la información del SO invitado.NetworkSection
AnnotationSection
ProductSection
EulaSection
StartupSection
DeploymentOptionSection
InstallSection
EnvironmentFilesSection
SharedDiskSection
ScaleOutSection
PlacementGroupSection
PlacementSection
EncryptionSection
- Proyecto de origen: el proyecto en el que se almacena el archivo OVF u OVA.
- Proyecto de destino: el proyecto en el que deseas crear la VM o la imagen de máquina.
- En el proyecto de origen, ubica el bucket de Cloud Storage.
En el bucket de Cloud Storage, otorga
roles/storage.objectViewer
a las siguientes cuentas de servicio:- Cuenta de servicio de Cloud Build para el proyecto de destino: esta cuenta de servicio tiene el formato
DESTINATION_PROJECT_NUMBER@cloudbuild.gserviceaccount.com
. - Cuenta de servicio de Compute Engine para el proyecto de destino: esta cuenta de servicio tiene el formato
DESTINATION_PROJECT_NUMBER-compute@developer.gserviceaccount.com
.
Reemplaza
DESTINATION_PROJECT_NUMBER
por el número del proyecto de destino.Para obtener instrucciones sobre cómo otorgar acceso a un bucket de Cloud Storage, consulta Agrega un principal a una política a nivel de bucket.
- Cuenta de servicio de Cloud Build para el proyecto de destino: esta cuenta de servicio tiene el formato
Importa el dispositivo virtual o la imagen de máquina.
- Sube el dispositivo virtual a Cloud Storage.
Para importar un archivo OVA de Cloud Storage a Compute Engine, usa el comando
gcloud compute instances import
.gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVA_FILE
Reemplaza lo siguiente:
VM_NAME
: El nombre de la instancia que deseas crearPATH_TO_OVA_FILE
: La ruta de acceso al archivo OVA de Cloud Storage
Ejemplos
Por ejemplo, para importar un archivo OVA
Ubuntu.ova
y crear una instancia llamadamy-instance
, ejecuta el siguiente comando:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova
Si la información del SO invitado en el archivo descriptor OVF es incorrecta o si deseas anular el SO detectado, puedes agregar la marca
--os
para especificar el sistema operativo. Si deseas obtener una lista de los valores admitidos, revisa las opciones de la marca--os
para el comandogcloud compute instances import
.Por ejemplo, para importar un archivo OVA
Ubuntu.ova
y crear una instancia llamadamy-instance
que ejecute Ubuntu 16.04, ejecuta el siguiente comando:gcloud compute instances import my-instance \ --os=ubuntu-1604 --source-uri=gs://my-bucket/Ubuntu.ova
Sube el dispositivo virtual a Cloud Storage.
Envía una solicitud
POST
a la API de 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" ] }
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto en el que deseas importar el archivo OVAVM_NAME
: El nombre de la instancia de máquina virtual que se creará. Por ejemplo,my-instance
SOURCE_URI
: El URI del archivo OVA que se almacena en Cloud Storage. Por ejemplo,gs://my-bucket/my-instance.ova
.ZONE
: La zona en la que se creará la instancia de VM. Si se deja en blanco, se usa la zona predeterminada del proyecto
Para obtener valores
args
adicionales que se puedan aprovisionar, consulta la sección de marcas opcionales en la página sobre importación de OVF de Compute Engine en GitHub.Respuesta de ejemplo
Esta respuesta de ejemplo es similar al siguiente resultado que se muestra:
{ "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 supervisar tu compilación, puedes usar uno de los siguientes métodos:
- Ejecuta una solicitud projects.builds.get mediante el
build-id
que se mostró. - Revisa los registros alojados en el
logUrl
proporcionado.
- Sube el dispositivo virtual a Cloud Storage.
Para importar un archivo OVF de Cloud Storage a Compute Engine, usa el comando
gcloud compute instances import
.Si tu directorio contiene un solo archivo OVF, puedes proporcionar la ruta de acceso al archivo descriptor o al directorio que contiene el archivo OVF.
Para importar un archivo OVF mediante la ruta de acceso al archivo descriptor, ejecuta el siguiente comando:
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_FILE
Para importar un archivo OVF con la ruta de acceso al directorio, ejecuta el siguiente comando:
gcloud compute instances import VM_NAME \ --source-uri=gs:PATH_TO_OVF_DIRECTORY
Reemplaza lo siguiente:
VM_NAME
: El nombre de la instancia que se crearáPATH_TO_OVF_FILE
: La ruta de acceso al archivo OVF en Cloud StoragePATH_TO_OVF_DIRECTORY
: La ruta de acceso al directorio que contiene el archivo OVF en Cloud Storage.
Ejemplos
Para importar un archivo OVF
Ubuntu.ovf
desde el directoriomy-ovf-directory
que crea una instancia llamadamy-instance
, ejecuta el siguiente comando:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
Para importar un archivo OVF desde el directorio
my-ovf-directory
que crea una instancia llamadamy-instance
, ejecuta el siguiente comando:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/my-ovf-directory
Si la información del SO invitado en el archivo descriptor OVF es incorrecta o si deseas anular el SO detectado, puedes agregar la marca
--os
para especificar el sistema operativo. Si deseas obtener una lista de los valores admitidos, revisa las opciones de la marca--os
para el comandogcloud compute instances import
. Por ejemplo, para importar un archivo OVFUbuntu.ovf
y crear una instancia llamadamy-instance
que ejecute Ubuntu 16.04, ejecuta el siguiente comando:gcloud compute instances import my-instance \ --os=ubuntu-1604 \ --source-uri=gs://my-bucket/my-ovf-directory/Ubuntu.ovf
Agrega el dispositivo virtual a Cloud Storage.
Envía una solicitud
POST
a la API de 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" ] }
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto en el que deseas importar el archivo OVAVM_NAME
: El nombre de la instancia de máquina virtual que se creará. Por ejemplo,my-instance
SOURCE_URI
: El URI del archivo OVF que se almacena en Cloud Storage. Por ejemplo,gs://my-bucket/my-instance.ovf
OS
: El sistema operativo del archivo OVF. Por ejemplo,ubuntu-1604
. La marca--os
es opcional de forma predeterminada, pero puedes estar marca para anular el SO detectado. Si deseas obtener una lista de los valores admitidos, revisa las opciones de la marca--os
para el comandogcloud compute instances import
.ZONE
: La zona en la que se creará la instancia de VM. Si se deja en blanco, se usa la zona predeterminada del proyecto
Para obtener valores
args
adicionales que se puedan aprovisionar, consulta la sección de marcas opcionales en la página sobre importación de OVF de Compute Engine en GitHub.Respuesta de ejemplo
El resultado muestra una respuesta similar al siguiente ejemplo:
{ "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" ] } } }
Puedes supervisar tu compilación de las siguientes dos maneras:
- Ejecuta una solicitud projects.builds.get mediante el
build-id
que se mostró. - Revisa los registros alojados en el
logUrl
proporcionado.
- Nombre de la VM:
my-instance
- Red:
custom-vpc-network
- Subred:
company-vpc-us-east1-c
- Zona:
us-east1-c
- Nombre de la VM:
my-instance-2
- Red:
my-shared-vpc
- Subred:
my-shared-subnet
- Zona:
us-east1-c
Agrega el rol
compute.networkUser
a la cuenta de servicio de Cloud Build. Para obtener más información, consulta Otorga roles necesarios a la cuenta de servicio de Cloud Build.Importa la 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
Reemplaza lo siguiente:
SERVICE_PROJECT_ID
: Es el ID del proyecto al que deseas importar el dispositivo virtualHOST_PROJECT_ID
: Es el ID del proyecto en el que se encuentra la VPC compartida.
- Nombre de la VM:
my-instance
- Red:
custom-vpc-network
- Subred:
company-vpc-us-east1-c
- Zona:
us-east1-c
- Nombre de la VM:
my-instance-2
- Red:
my-shared-vpc
- Subred:
my-shared-subnet
- Zona:
us-east1-c
Agrega el rol
compute.networkUser
a la cuenta de servicio de Cloud Build. Para obtener más información, consulta Otorga roles necesarios a la cuenta de servicio de Cloud Build.Crea la siguiente solicitud
POST
para importar la 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" ] }
Reemplaza lo siguiente:
SERVICE_PROJECT_ID
: Es el ID del proyecto al que deseas importar el dispositivo virtual.HOST_PROJECT_ID
: El ID del proyecto en el que se encuentra la VPC compartida.
Agrega el dispositivo virtual a Cloud Storage.
El proceso de importación requiere que se instalen administradores de paquetes en el sistema operativo de la VM. Es posible que estos administradores de paquetes deban realizar solicitudes a repositorios de paquetes que se encuentran fuera de Google Cloud. A fin de permitir el acceso a estas actualizaciones, debes configurar Cloud NAT. Para obtener más información, consulta Crea una configuración de NAT con Cloud Router.
Configura el Acceso privado a Google. Para obtener instrucciones detalladas, consulta la sección sobre cómo configurar el acceso privado a Google.
Importa la VM con Google Cloud CLI o REST.
Cuando se crea una VM desde un dispositivo virtual, se crean VM temporales en tu proyecto. Para asegurarte de que no se les asignen direcciones IP externas a estas VM temporales, debes especificar una marca o argumento adicional.
Para obtener más información, haz clic en las siguientes pestañas:
VM_NAME
: El nombre de la instancia que deseas crear.SOURCE_URI
: El URI para tu archivo OVA o OVF en Cloud Storage. Por ejemplo,gs://my-bucket/Ubuntu.ova
.ZONE
: Es la zona en la que se creará el dispositivo virtual. Si se deja en blanco, se usa la zona predeterminada del proyectoPROJECT_ID
: El ID del proyecto en el que deseas importar la imagen.VM_NAME
: Es el nombre de la VM que se creará.SOURCE_FILE
: El URI de la imagen en Cloud Storage. Por ejemplo,gs://my-bucket/Ubuntu.ova
ZONE
: Es la zona en la que se creará la instancia. Si se deja en blanco, se usa la zona predeterminada del proyectoVM_NAME
: Es el nombre de la VM que deseas crear.SOURCE_URI
: El URI para tu archivo OVA o OVF en Cloud Storage. Por ejemplo,gs://my-bucket/Ubuntu.ova
.Sube el dispositivo virtual a Cloud Storage.
En la API, crea una solicitud
POST
a la API de 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" ] }
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto en el que deseas importar el archivo OVAVM_NAME
: El nombre de la instancia de máquina virtual que se creará. Por ejemplo,my-instance
SOURCE_URI
: El URI del archivo OVA que se almacena en Cloud Storage. Por ejemplo,gs://my-bucket/my-instance.ova
.ZONE
: La zona en la que se creará la instancia de VM. Si se deja en blanco, se usa la zona predeterminada del proyecto
Agrega el dispositivo virtual a Cloud Storage.
Crea una cuenta de servicio y asigna las funciones mínimas. Si deseas obtener más información para crear cuentas de servicio, consulta Crea y administra cuentas de servicio.
Como mínimo, la cuenta de servicio de Compute Engine especificada debe tener asignadas las siguientes funciones:
roles/compute.storageAdmin
roles/storage.objectViewer
Estas funciones mínimas son necesarias para la cuenta de servicio especificada para la marca
--compute-service-account
. Para obtener más información, consulta Otorga funciones necesarias a la cuenta de servicio de Compute Engine.Usa el comando
gcloud compute instances import
para importar el 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
Reemplaza lo siguiente:
VM_NAME
: El nombre de la instancia que deseas crear.SOURCE_URI
: El URI para tu archivo OVA o OVF en Cloud Storage. Por ejemplo,gs://my-bucket/Ubuntu.ova
.ZONE
: Es la zona en la que se creará el dispositivo virtual. Si se deja en blanco, se usa la zona predeterminada del proyectoTEMP_SERVICE_ACCOUNT_EMAIL
: Es la dirección de correo electrónico asociada con la cuenta de servicio personalizada creada en el paso anterior. Las VM temporales usan esta cuenta de servicio. Si no se especifica, la VM usa la cuenta de servicio predeterminada de Compute Engine.SERVICE_ACCOUNT_EMAIL
: la dirección de correo electrónico asociada con la cuenta de servicio personalizada que se conectará a la VM que creó el proceso de importación. No hay restricciones de permisos para esta cuenta de servicio. Puedes personalizar esta cuenta de servicio según sea necesario. Si no se especifica, la cuenta de servicio predeterminada de Compute Engine se conecta a la VM.SCOPES
: Especifica el nivel de acceso para la opción--service-account
. Si no se especifica, se usan los permisos predeterminados. Para obtener más información, revisa la marca--scopes
.
Agrega el dispositivo virtual a Cloud Storage.
Crea una cuenta de servicio y asigna las funciones mínimas. Si deseas obtener más información para crear cuentas de servicio, consulta Crea y administra cuentas de servicio.
Como mínimo, la cuenta de servicio de Compute Engine especificada debe tener asignadas las siguientes funciones:
roles/compute.storageAdmin
roles/storage.objectViewer
Estas funciones mínimas son necesarias para la cuenta de servicio especificada para la marca
-compute-service-account
. Para obtener más información, consulta Otorga funciones necesarias a la cuenta de servicio de Compute Engine.En la API, crea una solicitud
POST
a la API de 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" ] }
Reemplaza lo siguiente:
PROJECT_ID
: El ID del proyecto en el que deseas importar la imagen.VM_NAME
: Es el nombre de la VM que se creará.SOURCE_FILE
: El URI de la imagen en Cloud Storage. Por ejemplo,gs://my-bucket/Ubuntu.ova
ZONE
: Es la zona en la que se creará la instancia. Si se deja en blanco, se usa la zona predeterminada del proyectoTEMP_SERVICE_ACCOUNT_EMAIL
: Es la dirección de correo electrónico asociada con la cuenta de servicio personalizada creada en el paso anterior. Las VM temporales usan esta cuenta de servicio. Si no se especifica, la VM usa la cuenta de servicio predeterminada de Compute Engine.SERVICE_ACCOUNT_EMAIL
: la dirección de correo electrónico asociada con la cuenta de servicio personalizada que se conectará a la VM que creó el proceso de importación. No hay restricciones de permisos para esta cuenta de servicio. Puedes personalizar esta cuenta de servicio según sea necesario. Si no se especifica, la cuenta de servicio predeterminada de Compute Engine se conecta a la VM.SCOPES
: Especifica el nivel de acceso para la opción-service-account
. Si no se especifica, se usan los permisos predeterminados. Para obtener más información, revisa la marca--scopes
.
- Obtén información sobre los nodos de instancia única.
- Obtén información sobre BYOL.
REST
Para usar las muestras de la API de REST en esta página en un entorno de desarrollo local, debes usar las credenciales que proporcionas a la CLI de gcloud.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Si deseas obtener más información, consulta Autentica para usar REST en la documentación de autenticación de Google Cloud.
Requisitos
En esta sección, se enumeran los requisitos para importar dispositivos virtuales a Compute Engine.
Requisitos de la VM de origen
La VM que se utiliza para crear el archivo OVF debe cumplir los siguientes requisitos:
El sistema operativo de la VM de origen debe cumplir con los siguientes requisitos:
Requisitos del archivo OVF
El archivo OVF debe cumplir los siguientes requisitos:
Permisos
Para habilitar una experiencia sin interrupciones cuando importas imágenes, asegúrate de haber otorgado las funciones de IAM necesarias a tu cuenta, a la cuenta de servicio de Cloud Build, y a la cuenta de servicio de Compute Engine. Para obtener más información, consulta Otorga funciones de IAM necesarias.
Configuración importada por la herramienta
El estándar OVF especifica el proceso para empaquetar dispositivos virtuales de una manera que no depende del proveedor de virtualización. Los paquetes de dispositivos virtuales OVF contienen un archivo descriptor
.ovf
y una colección de otros recursos, como discos virtuales.Cuando importas un dispositivo virtual OVF a Compute Engine, se procesa y se importa la siguiente configuración del archivo descriptor:
Las VM importadas siempre se crean con un adaptador de red único con una dirección IP externa. Este adaptador de red único se usa sin importar la configuración de red especificada en el archivo OVF. Para importar una VM sin dirección IP externa, consulta la sección sobre cómo importar una VM sin dirección IP externa.
Cuando se importa un dispositivo virtual, las siguientes secciones del archivo descriptor se ignoran (no se importan):
Limitaciones
Esta función no es compatible con los proyectos protegidos con los Controles del servicio de VPC.
Sistemas operativos compatibles
De manera opcional, puedes especificar el sistema operativo en el elemento
OperatingSystemSection
del archivo descriptor o especificar la marca--os
cuando importes un dispositivo virtual mediante el comandogcloud compute instances import
.Para obtener información sobre los sistemas operativos compatibles, consulta Detalles de los sistemas operativos.
Compatibilidad con BYOL y BYOS
De forma predeterminada, los archivos OVF que usan sistemas operativos Windows Server y Red Hat Enterprise Linux (RHEL) se importan y configuran para usar la facturación según demanda de SO premium, lo que conlleva cargos adicionales.
Si prefieres usar tu propia licencia de software o suscripción a este, puedes importar tus dispositivos virtuales con sus licencias. Para obtener información sobre los sistemas operativos compatibles con BYOL o BYOS, consulta Detalles de los sistemas operativos.
Puedes importar dispositivos como dispositivos con licencia BYOL mediante el
gcloud compute instances import
comando con la marca--byol
. Si especificas el SO de forma manual, usa la marca--os
a fin de especificar un valor que contenga el sufijobyol
para el SO invitado que deseas importar. Por ejemplo,--os=rhel-8-byol
importa una imagen de RHEL 8 con una licencia existente.Importa entre proyectos
Si los proyectos de origen y de destino son diferentes, las cuentas de servicio del proyecto de destino necesitan acceso al bucket de Cloud Storage en el proyecto de origen.
Para importar entre proyectos, completa los siguientes pasos:
Importa dispositivos virtuales
Puedes importar tu dispositivo virtual mediante Google Cloud CLI o REST.
Importa un archivo OVA
gcloud
REST
Importa un archivo OVF
gcloud
REST
Realiza importaciones con configuración personalizada
CPU y memoria personalizadas
gcloud
A fin de anular la configuración de CPU o de memoria especificada en el archivo OVF, sigue los pasos de Google Cloud CLI para importar un archivo OVA o importar un archivo OVF y especifica las marcas
--custom-cpu
y--custom-memory
.Ejemplo
Por ejemplo, para importar una instancia llamada
my-instance
que tiene 2 CPU y 2048 MB de memoria, ejecuta el siguiente comando:gcloud compute instances import my-instance \ --source-uri=gs://my-bucket/Ubuntu.ova \ --custom-cpu=2 --custom-memory=2048MB
REST
A fin de anular la configuración de CPU o de memoria especificada en el archivo OVF, sigue los pasos de la API de Compute Build para importar un archivo OVA o importar un archivo OVF y especifica el argumento
-machine-type
. Este-machine-type
representa un tipo de máquina predefinido o personalizado para usar.Ejemplo
Por ejemplo, para importar una instancia llamada
my-instance
que tenga 2 CPU y 2048 MB de memoria, usa la siguiente solicitud: ReemplazaPROJECT_ID
por el ID del proyecto.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
La red personalizada debe definirse en el mismo proyecto en el que importas la imagen.
gcloud
A fin de usar una red personalizada, sigue los pasos de Google Cloud CLI para importar un archivo OVA o importar un archivo OVF y especifica una marca
--network
. Si la red está configurada con un modo de subred personalizado, también debes especificar las marcas--subnet
y--zone
.Ejemplo 1: Usa una red personalizada
Por ejemplo, considera las siguientes propiedades:
Ejecuta el siguiente comando para importar una instancia con las propiedades anteriores. Reemplaza
SERVICE_PROJECT_ID
por el ID del proyecto al que deseas importar el 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
Ejemplo 2: Usa una red personalizada (VPC compartida)
Por ejemplo, considera las siguientes propiedades:
Para importar una VM con las propiedades anteriores, completa los siguientes pasos:
REST
A fin de usar una red personalizada, sigue los pasos de la API de Compute Build para importar un archivo OVA o importar un archivo OVF y especifica un argumento
-network
. Si la red está configurada con un modo de subred personalizado, también debes especificar los argumentos-subnet
y-zone
.Ejemplo: Usa una red personalizada
Por ejemplo, considera las siguientes propiedades:
Crea la siguiente solicitud
POST
para importar una instancia con las propiedades anteriores. ReemplazaSERVICE_PROJECT_ID
por el ID del proyecto al que deseas importar el 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" ] }
Ejemplo 2: Usa una red personalizada (VPC compartida)
Por ejemplo, considera las siguientes propiedades:
Para importar una VM con las propiedades anteriores, completa los siguientes pasos:
Importa una VM mediante redes que no permiten direcciones IP externas
Para importar una VM con redes que no permiten direcciones IP externas, completa los siguientes pasos:
gcloud
Para importar un dispositivo virtual de Cloud Storage a Compute Engine, usa el comando
gcloud compute instances import
con la marca--no-address
.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --zone=ZONE \ --no-address
Reemplaza lo siguiente:
REST
Puedes importar una VM sin IP externa mediante la API de Cloud Build con una anulación para la IP externa.
Para anular la configuración de IP externa especificada en el archivo OVF, sigue los pasos de la API de Cloud Build para importar un archivo OVA o importar un archivo OVF y especifica el 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" ] }
Reemplaza lo siguiente:
Importa un archivo OVA con un bootloader de UEFI
gcloud
Puedes usar el comando
gcloud compute instances import
para forzar una importación a fin de usar el inicio de UEFI.gcloud compute instances import VM_NAME \ --source-uri=SOURCE_URI \ --guest-os-features=UEFI_COMPATIBLE
Reemplaza lo siguiente:
REST
Puedes importar un archivo OVA con un bootloader de UEFI mediante la API de Cloud Build y si especificas el argumento
-uefi-compatible
.Importa un dispositivo virtual mediante cuentas de servicio personalizadas
Durante la importación de un dispositivo virtual, se crean instancias de máquina virtual (VM) temporales en tu proyecto. La herramienta de importación de imágenes de estas VM temporales debe autenticarse.
Una cuenta de servicio es una identidad que se adjunta a una VM. Se puede acceder a los tokens de acceso a la cuenta de servicio a través del servidor de metadatos de instancia y usarlos para autenticar la herramienta de importación de imágenes en la VM.
De forma predeterminada, el proceso de importación usa la cuenta de servicio predeterminada de Compute Engine. Sin embargo, si la cuenta de servicio predeterminada de Compute Engine está inhabilitada en tu proyecto o si quieres usar una cuenta de servicio de Compute Engine personalizada, debes crear una cuenta de servicio y especificarla para el proceso de importación.
gcloud
REST
¿Qué sigue?
Salvo que se indique lo contrario, el contenido de esta página está sujeto a la licencia Atribución 4.0 de Creative Commons, y los ejemplos de código están sujetos a la licencia Apache 2.0. Para obtener más información, consulta las políticas del sitio de Google Developers. Java es una marca registrada de Oracle o sus afiliados.
Última actualización: 2024-11-20 (UTC)
-