Importa dispositivos virtuales

Un dispositivo virtual es un paquete que contiene imágenes de disco y una configuración de hardware para una máquina virtual (VM).

El 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 máquinas virtuales 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, revisa la sección sobre la elección de un método de importació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 instancia de VM en Compute Engine.

Antes de comenzar

Habilita la API de Cloud Build

La herramienta de importación de dispositivos virtuales usa Cloud Build.

En la mayoría de los casos, gcloud compute images import intenta otorgar estos permisos a la cuenta de servicio de Cloud Build. Sin embargo, puedes otorgarlos de forma manual para asegurarte de que los permisos obligatorios estén en vigor.

Console

  1. Habilita la API de Cloud Build.

    Habilitar la API de Cloud Build

    Cuando habilitas la API de Cloud Build desde Console, Compute Engine le otorga las siguientes funciones a la cuenta de servicio de Cloud Build para que el servicio de Cloud Build pueda importar instancias a Compute Engine:

    • roles/iam.serviceAccountTokenCreator
    • roles/compute.admin
    • roles/iam.serviceAccountUser

    La herramienta de importación también usa la cuenta de servicio predeterminada de Compute Engine. De forma predeterminada, la cuenta de servicio de Compute Engine tiene la función de editor de proyectos de Cloud IAM. Si se quita esta función, es posible que el proceso de importación falle. Para volver a agregar la función a la cuenta de servicio, consulta la página sobre cómo otorgar acceso. Para obtener más información sobre la cuenta de servicio predeterminada de Compute Engine, consulta Cuenta de servicio predeterminada de Compute Engine.

gcloud

Para configurar el servicio Cloud Build mediante la herramienta de línea de comandos de gcloud, completa los siguientes pasos:

  1. Habilita Cloud Build.

    gcloud services enable cloudbuild.googleapis.com

    La herramienta de importación también usa la cuenta de servicio predeterminada de Compute Engine. De forma predeterminada, la cuenta de servicio de Compute Engine tiene la función de editor de proyectos de Cloud IAM. Si se quita esta función, es posible que el proceso de importación falle. Para volver a agregar la función a la cuenta de servicio, consulta la página sobre cómo otorgar acceso. Para obtener más información sobre la cuenta de servicio predeterminada de Compute Engine, consulta Cuenta de servicio predeterminada de Compute Engine.

  2. Agrega la función compute.admin a la cuenta de servicio para la API de Cloud Build.

    gcloud projects add-iam-policy-binding project-id \
       --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
       --role roles/compute.admin
    
  3. Agrega la función iam.serviceAccountUser a la cuenta de servicio para la API de Cloud Build.

    gcloud projects add-iam-policy-binding project-id \
       --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
       --role roles/iam.serviceAccountUser
    
  4. Agrega la función iam.serviceAccountTokenCreator a la cuenta de servicio para la API de Cloud Build.

    gcloud projects add-iam-policy-binding project-id \
       --member serviceAccount:project-num@cloudbuild.gserviceaccount.com \
       --role roles/iam.serviceAccountTokenCreator
    

    Reemplaza los siguientes elementos:

Requisitos

Requisitos de la VM de origen

La VM que se utiliza para crear el archivo OVF debe cumplir los siguientes requisitos:

  • Los discos virtuales deben estar en los formatos VMDK o VHD.
  • Los discos virtuales deben configurarse con inicio MBR. No se admite UEFI.
  • Los discos virtuales no deben estar encriptados.

Para verificar que tu VM cumple con los requisitos, puedes ejecutar la herramienta de comprobación previa.

Requisitos del archivo OVF

El archivo OVF debe cumplir los siguientes requisitos:

  • 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 portabilidad Level 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 se debe poder iniciar.

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 de 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:

  • 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.

Las instancias importadas siempre se crean con un adaptador de red único, sin IP externa. Este adaptador de red único se usa sin importar la configuración de red especificada en el archivo OVF.

Limitaciones

Cuando se importa un dispositivo virtual, las siguientes secciones del archivo descriptor se ignoran (no se importan):

  • NetworkSection
  • AnnotationSection
  • ProductSection
  • EulaSection
  • StartupSection
  • DeploymentOptionSection
  • InstallSection
  • EnvironmentFilesSection
  • SharedDiskSection
  • ScaleOutSection
  • PlacementGroupSection
  • PlacementSection
  • EncryptionSection

Sistemas operativos compatibles

Especifica uno de los siguientes sistemas operativos en el OperatingSystemSection de tu archivo descriptor:

Distribuciones y versiones de Linux

  • CentOS 6, CentOS 7
  • Debian 8, Debian 9
  • Red Hat Enterprise Linux 6, Red Hat Enterprise Linux 7
  • Ubuntu 14.04 LTS, Ubuntu 16.04 LTS

Para todas las distribuciones de Linux, el disco de arranque debe tener instalado GRUB.

Versiones de Windows

  • Windows Server 2008 R2 SP1
  • Windows Server 2012, Windows Server 2012 R2, Windows Server 2012 R2 Core
  • Windows Server 2016, Windows Server 2016 Core
  • Windows Server 2019, Windows Server 2019 Core
  • Windows 7 SP1 (32 y 64 bits, solo BYOL)
  • Windows 8.1 (32 y 64 bits, solo BYOL)
  • Windows 10, versiones 1709, 1803, 1903, 1909 (32 y 64 bits, solo BYOL)

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 utilizadas durante el proceso de importación.

Compatibilidad con BYOL

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 SO premium, lo que conlleva cargos adicionales.

Si prefieres usar tus propias suscripciones a software para RHEL, puedes importar dispositivos virtuales como dispositivos con licencia Usa tu propia licencia (BYOL).

A fin de importar dispositivos como dispositivos con licencia BYOL, especifica uno de los siguientes valores BYOL para la marca [--os] cuando ejecutes el comando de importación.

  • rhel-6-byol
  • rhel-7-byol
  • windows-2008r2-byol
  • windows-2012-byol
  • windows-2012r2-byol
  • windows-2016-byol
  • windows-2019-byol
  • windows-7-x64-byol
  • windows-7-x86-byol
  • windows-8-x64-byol
  • windows-8-x86-byol
  • windows-10-x64-byol
  • windows-10-x86-byol

Importa un archivo OVA

  1. Agrega el dispositivo virtual a Cloud Storage.
  2. Para importar un archivo OVA de Cloud Storage a Compute Engine, usa el comando gcloud compute instances import.

    gcloud compute instances import instance-name \
       --source-uri=gs:path-to-OVA-file
    

    Reemplaza los siguientes elementos:

    • instance-name: El nombre de la instancia que deseas crear.
    • path-to-OVA-file: La ruta de acceso a tu archivo OVA de Cloud Storage.

    Por ejemplo, para importar un archivo OVA Ubuntu.ova y crear una instancia llamada my-instance, ejecuta el siguiente comando:

    gcloud compute instances import my-instance \
        --source-uri=gs://my-bucket/Ubuntu.ova
    

    En algunos casos, es posible que se te solicite que proporciones un valor para el SO. Para especificar el sistema operativo, debes agregar la marca --os. Por ejemplo, para importar un archivo OVA Ubuntu.ova y crear una instancia llamada my-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
    

Importa un archivo OVF

  1. Agrega el dispositivo virtual a Cloud Storage.
  2. 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 con la ruta de acceso al archivo descriptor, ejecuta el siguiente comando:

      gcloud compute instances import instance-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 instance-name \
       --source-uri=gs:path-to-OVF-directory
      

    Reemplaza los siguientes elementos:

    • instance-name: El nombre de la instancia que deseas crear.
    • path-to-OVF-file: La ruta de acceso al archivo OVF en Cloud Storage.
    • path-to-OVF-directory: La ruta de acceso al directorio que contiene el archivo OVF en Cloud Storage.

    Por ejemplo:

    • Para importar un archivo OVF Ubuntu.ovf en el directorio my-ovf-directory, que crea una instancia llamada my-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 llamada my-instance, ejecuta el siguiente comando:

      gcloud compute instances import my-instance \
       --source-uri=gs://my-bucket/my-ovf-directory
      

    En algunos casos, es posible que se te solicite que proporciones un valor para el SO. Para especificar el sistema operativo, debes agregar la marca --os. Por ejemplo, para importar un archivo OVF Ubuntu.ovf y crear una instancia llamada my-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
    

Realiza importaciones con configuración personalizada

CPU y memoria personalizadas

Si deseas anular la configuración de CPU o memoria especificada en el archivo OVF, especifica las marcas--custom-cpu y --custom-memory.

Por ejemplo, para importar una instancia llamada my-instance que ejecuta Ubuntu 1404 y tiene 2 CPU y 2048 MB de memoria, ejecuta el siguiente comando:

gcloud compute instances import my-instance \
    --os=ubuntu-1404 --source-uri=gs://my-bucket/Ubuntu.ova \
    --custom-cpu=2 --custom-memory=2048MB

Redes personalizadas

Si tu proyecto está configurado para usar redes personalizadas, deberás especificar una marca --network. Si la red está configurada con un modo de subred personalizado, también debes especificar las marcas --subnet y --zone.

Por ejemplo, para importar una instancia con las siguientes propiedades:

  • Nombre de la instancia: my-instance
  • Sistema operativo: Ubuntu 1404
  • Red: custom-vpc network
  • Subred: company-vpc-us-east1-c
  • Zona: us-east1-c

Ejecuta el comando siguiente:

gcloud compute instances import my-instance --os ubuntu-1404 \
    --source-uri=gs://my-bucket/Ubuntu.ova \
    --network company-vpc \
    --subnet company-vpc-us-east1-c \
    --zone us-east1-c

Próximos pasos