Habilitar pantallas virtuales en una VM


En este documento se describe cómo habilitar o inhabilitar pantallas virtuales en una instancia de máquina virtual (VM).

Si una aplicación que se ejecuta en tu VM requiere un dispositivo de visualización, pero no necesitas el rendimiento de una GPU, configura tu VM para que use dispositivos de visualización virtuales. Si habilitas las pantallas virtuales en una máquina virtual, puedes ejecutar dispositivos de pantalla virtual en ella, como herramientas de gestión de sistemas remotos, software de escritorio remoto y captura de pantalla.

Antes de empezar

  • Si aún no lo has hecho, configura la autenticación. La autenticación verifica tu identidad para acceder a Google Cloud servicios y APIs. Para ejecutar código o ejemplos desde un entorno de desarrollo local, puedes autenticarte en Compute Engine seleccionando una de las siguientes opciones:

    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

    1. Instala Google Cloud CLI. Después de la instalación, inicializa la CLI de Google Cloud ejecutando el siguiente comando:

      gcloud init

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    2. Set a default region and zone.

    Terraform

    Para usar las muestras de Terraform de esta página en un entorno de desarrollo local, instala e inicializa la CLI de gcloud y, a continuación, configura las credenciales predeterminadas de la aplicación con tus credenciales de usuario.

      Instala Google Cloud CLI.

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

      If you're using a local shell, then create local authentication credentials for your user account:

      gcloud auth application-default login

      You don't need to do this if you're using Cloud Shell.

      If an authentication error is returned, and you are using an external identity provider (IdP), confirm that you have signed in to the gcloud CLI with your federated identity.

    Para obtener más información, consulta Set up authentication for a local development environment.

    REST

    Para usar las muestras de la API REST de esta página en un entorno de desarrollo local, debes usar las credenciales que proporciones a la CLI de gcloud.

      Instala Google Cloud CLI.

      Si utilizas un proveedor de identidades (IdP) externo, primero debes iniciar sesión en la CLI de gcloud con tu identidad federada.

    Para obtener más información, consulta el artículo Autenticarse para usar REST de la documentación sobre autenticación de Google Cloud .

Roles obligatorios

Para obtener los permisos que necesitas para habilitar o inhabilitar pantallas virtuales en una VM, pide a tu administrador que te conceda el rol de gestión de identidades y accesos Administrador de instancias de Compute (v. 1) (roles/compute.instanceAdmin.v1) en el proyecto. Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

Este rol predefinido contiene los permisos necesarios para habilitar o inhabilitar pantallas virtuales en una VM. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:

Permisos obligatorios

Para habilitar o inhabilitar pantallas virtuales en una VM, se necesitan los siguientes permisos:

  • Para habilitar o inhabilitar pantallas virtuales en una máquina virtual: compute.instances.updateDisplayDevice en la máquina virtual
  • Para crear una VM con pantallas virtuales habilitadas, sigue estos pasos:
    • compute.instances.create en el proyecto
    • Para usar una imagen personalizada para crear la VM, haz clic en compute.images.useReadOnly en la imagen.
    • Para usar una captura para crear la VM, compute.snapshots.useReadOnly en la captura
    • Para usar una plantilla de instancia para crear la VM, haz clic en compute.instanceTemplates.useReadOnly en la plantilla de instancia.
    • Para asignar una red antigua a la VM, haz lo siguiente: compute.networks.use en el proyecto
    • Para especificar una dirección IP estática para la máquina virtual, compute.addresses.use en el proyecto
    • Para asignar una dirección IP externa a la VM cuando se usa una red antigua, haz lo siguiente: compute.networks.useExternalIp en el proyecto
    • Para especificar una subred para la VM, compute.subnetworks.use en el proyecto o en la subred elegida.
    • Para asignar una dirección IP externa a la VM cuando se usa una red de VPC, compute.subnetworks.useExternalIp en el proyecto o en la subred elegida.
    • Para definir los metadatos de la instancia de VM de la VM: compute.instances.setMetadata en el proyecto,
    • Para definir etiquetas en la máquina virtual, compute.instances.setTags en la máquina virtual
    • Para definir etiquetas de la VM, compute.instances.setLabels en la VM
    • Para definir una cuenta de servicio que use la VM, haz lo siguiente en la VM: compute.instances.setServiceAccount
    • Para crear un disco para la VM compute.disks.create del proyecto, sigue estos pasos:
    • Para adjuntar un disco en modo de solo lectura o de lectura y escritura, haz lo siguiente: compute.disks.use en el disco
    • Para adjuntar un disco en modo de solo lectura, compute.disks.useReadOnly en el disco.

También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.

Precios

No se aplican costes por habilitar o inhabilitar pantallas virtuales en una máquina virtual.

Restricciones

En las máquinas virtuales con pantallas virtuales habilitadas, se aplican las siguientes limitaciones:

  • Si tu máquina virtual ejecuta una imagen de SO Windows basada en x64 anterior a la versión v20190312, después de habilitar las pantallas virtuales en la máquina virtual, debes instalar el controlador de pantalla virtual, tal como se describe en este documento. Si tu máquina virtual ejecuta una versión posterior de la imagen del SO, el controlador ya estará instalado en la imagen del SO.

  • Solo puedes usar un dispositivo de pantalla virtual en la VM después de que se inicie el SO invitado e inicialice el controlador de pantalla virtual.

  • No puedes usar dispositivos de pantalla virtual en máquinas virtuales que ejecuten la plataforma de CPU Sandy Bridge.

  • No puedes usar dispositivos de pantalla virtual en VMs Arm T2A.

Habilitar pantallas virtuales en una VM

Para habilitar pantallas virtuales en una VM, selecciona uno de los siguientes métodos descritos en este documento:

Si tu máquina virtual ejecuta una imagen del SO Windows basada en x64 anterior a la versión v20190312, después de habilitar las pantallas virtuales en la máquina virtual, instala el controlador de pantalla virtual tal como se describe en este documento.

Crear una VM con pantallas virtuales habilitadas

Para crear una VM con pantallas virtuales habilitadas, selecciona una de las siguientes opciones:

Consola

  1. En la Google Cloud consola, ve a la página Crear una instancia.

    Ir a Crear una instancia

  2. Especifica las propiedades de la VM, como el nombre, la zona y el tipo de máquina.

  3. En la sección Mostrar dispositivo, selecciona la casilla Habilitar mostrar dispositivo.

  4. Para crear la VM, haz clic en Crear.

gcloud

Para crear una VM con pantallas virtuales habilitadas, usa el comando gcloud compute instances create con la marca --enable-display-device.

gcloud compute instances create VM_NAME \
    --enable-display-device \
    --machine-type=MACHINE_TYPE \
    --zone=ZONE

Haz los cambios siguientes:

  • VM_NAME: el nombre de la VM.

  • MACHINE_TYPE: el tipo de máquina que se va a usar en la VM.

  • ZONE: la zona en la que se creará la VM.

Terraform

Para crear una VM con pantallas virtuales habilitadas, usa el recurso de Terraform con el argumento enable_display definido como true.

Por ejemplo, para crear una VM en la zona us-central1-c con pantallas virtuales habilitadas y especificar f1-micro como tipo de máquina, usa el siguiente recurso:


resource "google_compute_instance" "instance_virtual_display" {
  name         = "instance-virtual-display"
  machine_type = "f1-micro"
  zone         = "us-central1-c"

  # Set the below to true to enable virtual display
  enable_display = true

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-11"
    }
  }
  network_interface {
    # A default network is created for all GCP projects
    network = "default"
    access_config {
    }
  }
}

REST

Para crear una VM con pantallas virtuales habilitadas, haz una solicitud POST al método instances.insert. En el cuerpo de la solicitud, incluye el campo enableDisplay con el valor true.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "name": "VM_NAME",
  "machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
  "disks": [
    {
      "boot": true,
      "initializeParams": {
        "sourceImage": "project/IMAGE_PROJECT/global/images/IMAGE"
      }
    }
  ],
  "displayDevice": {
    "enableDisplay": true
  },
  "networkInterfaces": [
    {
      "network": "global/networks/default"
    }
  ]
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se va a crear la VM.

  • ZONE: la zona en la que se creará la VM.

  • VM_NAME: el nombre de la VM.

  • MACHINE_TYPE: el tipo de máquina que se va a usar en la VM.

  • IMAGE_PROJECT: el proyecto de imagen que contiene la imagen del SO (por ejemplo, debian-cloud). Para obtener más información sobre los proyectos de imágenes admitidos, consulta Imágenes públicas.

  • IMAGE: especifica una de las siguientes opciones:

    • Una versión específica de la imagen del SO, por ejemplo, debian-12-bookworm-v20240617.

    • Una familia de imágenes, que debe tener el formato family/IMAGE_FAMILY. Especifica la imagen del SO más reciente que no está obsoleta. Por ejemplo, si especificas family/debian-12, se usará la versión más reciente de la familia de imágenes de Debian 12. Para obtener más información sobre cómo usar familias de imágenes, consulte las prácticas recomendadas para familias de imágenes.

Para obtener más información sobre cómo crear una VM, consulta Crear e iniciar una instancia de Compute Engine.

Habilitar pantallas virtuales en una VM

Antes de habilitar las pantallas virtuales en una VM, detén la VM.

Para habilitar pantallas virtuales en una VM, selecciona una de las siguientes opciones:

Consola

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ve a la página Instancias de VM.

  2. En la columna Nombre, haz clic en el nombre de la máquina virtual.

    Se abrirá la página de detalles de la VM.

  3. Haz clic en Editar.

    Se abrirá la página para editar las propiedades de la máquina virtual.

  4. En la sección Mostrar dispositivo, selecciona la casilla Habilitar mostrar dispositivo.

  5. Haz clic en Guardar.

gcloud

Para habilitar pantallas virtuales en una VM, usa el comando gcloud compute instances update con la marca --enable-display-device.

gcloud compute instances update VM_NAME \
    --enable-display-device \
    --zone=ZONE

Haz los cambios siguientes:

  • VM_NAME: el nombre de la VM.

  • ZONE: la zona en la que se encuentra la VM.

REST

Para habilitar las pantallas virtuales en una VM, haz una solicitud POST al método instances.updateDisplayDevice. En el cuerpo de la solicitud, incluye el campo enableDisplay y asigna el valor true.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateDisplayDevice

{
  "enableDisplay": true
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se encuentra la VM.

  • ZONE: la zona en la que se encuentra la VM.

  • VM_NAME: el nombre de la VM.

Inhabilitar pantallas virtuales en una VM

Antes de inhabilitar las pantallas virtuales en una VM, asegúrate de detener la VM.

Para inhabilitar las pantallas virtuales en una VM, selecciona una de las siguientes opciones:

Consola

  1. En la consola de Google Cloud , ve a la página Instancias de VM.

    Ve a la página Instancias de VM.

  2. En la columna Nombre, haz clic en el nombre de la máquina virtual.

    Se abrirá la página de detalles de la VM.

  3. Haz clic en Editar.

    Se abrirá la página para editar las propiedades de la máquina virtual.

  4. En la sección Dispositivo de visualización, desmarca la casilla Habilitar dispositivo de visualización.

  5. Haz clic en Guardar.

gcloud

Para inhabilitar las pantallas virtuales en una VM, usa el comando gcloud compute instances update con la marca --no-enable-display-device.

gcloud compute instances update VM_NAME \
    --no-enable-display-device \
    --zone=ZONE

Haz los cambios siguientes:

  • VM_NAME: el nombre de la VM.

  • ZONE: la zona en la que se encuentra la VM.

REST

Para inhabilitar las pantallas virtuales en una VM, envía una solicitud POST al método instances.updateDisplayDevice. En el cuerpo de la solicitud, incluye el campo enableDisplay y asigna el valor false.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/VM_NAME/updateDisplayDevice

{
  "enableDisplay": false
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto en el que se encuentra la VM.

  • ZONE: la zona en la que se encuentra la VM.

  • VM_NAME: el nombre de la VM.

Instalar el controlador de pantalla virtual

Si has habilitado pantallas virtuales en una VM de Windows que ejecuta una imagen del SO Windows anterior a la versión v20190312, debes instalar el controlador de pantalla virtual proporcionado por Google Cloudpara usar un dispositivo de pantalla virtual en la VM. Si la VM ejecuta una versión de imagen de SO más reciente, el controlador ya estará instalado y podrás saltarte esta sección.

Para instalar el controlador de pantalla virtual en una VM con pantallas virtuales habilitadas, haz lo siguiente:

  1. Conéctate a la VM de Windows.

  2. Abre una terminal de PowerShell como administrador.

  3. Instala el componente google-compute-engine-driver-gga:

    googet install google-compute-engine-driver-gga
    
  4. Reinicia la VM.

Después de reiniciar la VM, puedes verificar que el controlador se ha instalado correctamente como se describe en la siguiente sección.

Verificar la instalación del controlador de pantalla virtual

Si has tenido que instalar manualmente el controlador de pantalla virtual en una VM de Windows, como se describe en la sección anterior, puedes comprobar que la instalación se ha realizado correctamente haciendo lo siguiente:

  1. Si aún no lo has hecho, conéctate a la VM de Windows.

  2. Abre el Administrador de dispositivos.

  3. En la lista Administrador de dispositivos, en la lista Adaptadores de pantalla, comprueba que aparezca el controlador de Google Graphics Array (GGA).

    Si el controlador no aparece en la lista, vuelve a instalar el controlador de pantalla virtual como se describe en este documento.

Siguientes pasos