Exportar una imagen personalizada a Cloud Storage


Si necesitas mover los datos de tu disco de arranque de Compute Engine fuera de tu proyecto de Compute Engine, puedes exportar una imagen de disco de arranque a Cloud Storage como un archivo tar.gz. Si necesitas crear una imagen de disco persistente para usarla al crear discos persistentes en Compute Engine, consulta el artículo Crear una imagen personalizada.

Puedes crear una copia de seguridad o compartir una imagen personalizada exportándola a Cloud Storage. Este método es ideal para compartir imágenes concretas con proyectos que no tienen acceso a tus imágenes. También puedes compartir imágenes concediendo el rol de usuario de imagen de Compute Engine en la imagen o en el proyecto que la contiene.

En el siguiente diagrama se muestran algunos flujos de trabajo habituales para crear y reutilizar una imagen personalizada.

Crear y reutilizar imágenes personalizadas.
Imagen 1. Ejemplos de creación y reutilización de imágenes personalizadas

Antes de empezar

  • Consulta la página sobre imágenes.
  • Si el proyecto del que quiere exportar la imagen tiene definida una política de imágenes de confianza, añada projects/compute-image-import y projects/compute-image-tools a la lista de editores permitidos.
  • Para saber cómo cumplir los requisitos antes de exportar imágenes, consulta Requisitos para importar y exportar imágenes de máquina virtual.
  • 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.

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

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

Limitaciones y restricciones

Se aplican las siguientes limitaciones al proceso de exportación de imágenes.

Limitaciones generales

No puedes exportar imágenes públicas proporcionadas por Google. Solo puedes exportar imágenes que hayas creado o importado previamente.

Cuando exportas una imagen, se crea una sesión en la máquina desde la que exportas la imagen. Esta sesión debe permanecer activa hasta que se complete el proceso de exportación. Si la sesión finaliza antes de que se complete el proceso de exportación o si la tarea falla, es posible que no se eliminen los recursos efímeros, como los discos temporales, las instancias de VM o los contenedores de almacenamiento. En este caso, debes eliminar estos recursos efímeros manualmente.

Se crea un segmento de Cloud Storage llamado ${PROJECT}-daisy-bkt-${REGION} para los recursos efímeros creados durante el proceso de exportación en la misma región o multirregión que el segmento de destino. Para gestionar el ciclo de vida de estos recursos, consulta Administración del ciclo de vida de los objetos.

El proceso de exportación usa Cloud Build para exportar una imagen. Una sesión de Cloud Build dura un máximo de 24 horas. Si la imagen es muy grande y tarda más de 24 horas en exportarse, puedes exportarla manualmente.

Limitaciones de Controles de Servicio de VPC

En los proyectos protegidos con Controles de Servicio de VPC, utiliza uno de los siguientes métodos:

  • exportar desde el mismo proyecto en el que se encuentra la imagen
  • exportar la imagen manualmente

Exportar una imagen con un solo comando

Exportar una imagen a Cloud Storage

Puedes exportar tus imágenes mediante la Google Cloud consola, Google Cloud CLI o REST.

Consola

  1. En la Google Cloud consola, ve a la página Imágenes.

    Ir a Imágenes

  2. Haz clic en el nombre de la imagen que quieras exportar para ir a la página de detalles de la imagen.

  3. En la página de detalles de la imagen, haz clic en Exportar para abrir la página Exportar imagen.

  4. En la página Exportar imagen, elija el formato de exportación de la imagen.

  5. Para elegir la ubicación de Cloud Storage a la que quieres exportar la imagen, haz clic en Examinar.

  6. Elige una ubicación de Cloud Storage para exportar la imagen. También puedes seguir las instrucciones para crear un segmento de Cloud Storage y, a continuación, introducir un nombre para el nuevo segmento.

  7. Una vez que hayas elegido un Cloud Storage, elige un nombre de archivo para la imagen exportada. Puedes usar el nombre de archivo predeterminado o elegir el que quieras.

  8. Después de elegir un Cloud Storage e introducir un nombre de archivo para la imagen, haz clic en Seleccionar.

  9. En la página Exportar imagen, haz clic en Exportar. Después de elegir Exportar, la consola muestra el historial de exportación de imágenes, donde puedes ver el proceso de exportación de imágenes. Google Cloud Para obtener más información sobre el proceso de exportación de imágenes, haz clic en el ID de Cloud Build para ir a la página Detalles de la exportación de imágenes, donde puedes ver y descargar el registro de exportación de imágenes.

  10. Ve a la página Almacenamiento para acceder a la imagen exportada.

    Ir a Almacenamiento

gcloud

La forma preferida de exportar una imagen a Cloud Storage es usar el comando gcloud compute images export. Este comando usa Daisy para encadenar los varios pasos necesarios para exportar una imagen.

.

El comando gcloud compute images export supone que ya has creado una imagen, por ejemplo, con el comando gcloud compute images create.

Con Google Cloud CLI, ejecuta el siguiente comando:

gcloud compute images export \
    --destination-uri DESTINATION_URI \
    --image IMAGE_NAME

Haz los cambios siguientes:

  • DESTINATION_URI: el URI de Cloud Storage de destino del archivo de imagen exportado.
  • IMAGE_NAME: el nombre de la imagen de disco que se va a exportar.

De forma predeterminada, las imágenes se exportan en formato Compute Engine, que es un archivo disk.raw comprimido con tar y gzip. Para exportar imágenes en otros formatos admitidos por la utilidad de imágenes de disco de QEMU, puedes usar la marca --export-format. Los formatos válidos son vmdk, vhdx, vpc, vdi y qcow2.

Ejemplo

Por ejemplo, el siguiente comando exporta una imagen llamada my-image de my-project a un segmento de Cloud Storage llamado my-bucket. De forma predeterminada, la imagen se exporta como disk.raw file y se comprime en el formato de archivo tar.gz.

gcloud compute images export \
    --destination-uri gs://my-bucket/my-image.tar.gz \
    --image my-image \
    --project my-project

Para ver las marcas, consulta la documentación de referencia de gcloud compute images export.

REST

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":[
        "-timeout=7000s",
        "-source_image=SOURCE_IMAGE",
        "-client_id=api",
        "-format=IMAGE_FORMAT",
        "-destination_uri=DESTINATION_URI"
      ],
      "name":"gcr.io/compute-image-tools/gce_vm_image_export:release",
      "env":[
        "BUILD_ID=$BUILD_ID"
      ]
    }
  ],
  "tags":[
    "gce-daisy",
    "gce-daisy-image-export"
  ]
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID del proyecto que contiene la imagen que quieres exportar.
  • SOURCE_IMAGE: el nombre de la imagen que se va a exportar.
  • IMAGE_FORMAT: el formato de la imagen exportada. Los formatos válidos son vmdk, vhdx, vpc, vdi y qcow2.
  • DESTINATION_URI: el URI de Cloud Storage de la ubicación a la que quiere exportar el archivo de imagen. Por ejemplo, gs://my-bucket/my-exported-image.vmdk.

Para ver otros valores de args que se pueden proporcionar, consulta la sección de marcas opcionales de la página de GitHub sobre la exportación de imágenes de VM.

Respuesta de ejemplo

La siguiente respuesta de ejemplo se parece al resultado que se devuelve:

{
"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-10-02T18:59:13.393492020Z",
  "steps": [
   {
    "name": "gcr.io/compute-image-tools/gce_vm_image_export:release",
    "env": [
     "BUILD_ID=3a2055bc-ccbd-4101-9434-d376b88b8940"
    ],
    "args": [
     "-timeout=7056s",
     "-source_image=my-image",
     "-client_id=api",
     "-format=vmdk",
     "-destination_uri=gs://my-bucket/my-exported-image.vmdk"
    ]
   }
  ],
  "timeout": "7200s",
  "projectId": "myproject-12345",
  "logsBucket": "gs://123456.cloudbuild-logs.googleusercontent.com",
  "options": {
   "logging": "LEGACY"
  },
  "logUrl": "https://console.cloud.google.com/cloud-build/builds/3a2055bc-ccbd-4101-9434-d376b88b8940?project=123456"
 }
 }

Hay varias formas de monitorizar tu compilación:

  • Ejecuta una solicitud projects.builds.get con el build-id devuelto.
  • Revisa los registros alojados en la logUrl proporcionada.

Exportar una imagen de un proyecto mediante una cuenta de servicio de Compute Engine personalizada

Durante la exportación de una imagen, se crea una instancia de máquina virtual (VM) temporal en tu proyecto. La herramienta de exportación de imágenes de esta VM temporal debe autenticarse.

Una cuenta de servicio es una identidad que se adjunta a una máquina virtual. Se puede acceder a los tokens de acceso de la cuenta de servicio a través del servidor de metadatos de la instancia y usarlos para autenticar la herramienta de exportación de imágenes en la VM.

De forma predeterminada, el proceso de exportación usa el agente de servicio de Compute Engine predeterminado del proyecto. Sin embargo, si la cuenta de servicio predeterminada de Compute Engine está inhabilitada en tu proyecto o quieres usar una cuenta de servicio de Compute Engine personalizada, debes crear una cuenta de servicio y especificarla para el proceso de exportación.

Puedes exportar tus imágenes mediante la CLI de Google Cloud o REST.

gcloud

  1. Crea una cuenta de servicio y asigna los roles mínimos. Para obtener más información sobre cómo crear cuentas de servicio, consulta el artículo Crear y gestionar cuentas de servicio.

    Como mínimo, la cuenta de servicio de Compute Engine especificada debe tener asignados los siguientes roles:

    • roles/compute.storageAdmin
    • roles/storage.objectAdmin

    Para obtener más información, consulta Asignar los roles necesarios a la cuenta de servicio de Compute Engine.

  2. Usa el comando gcloud compute images export para exportar la imagen.

    gcloud compute images export \
        --destination-uri DESTINATION_URI \
        --image IMAGE_NAME \
        --compute-service-account SERVICE_ACCOUNT_EMAIL

    Haz los cambios siguientes:

    • DESTINATION_URI: el URI de Cloud Storage de destino del archivo de imagen exportado.
    • IMAGE_NAME: el nombre de la imagen de disco que se va a exportar.
    • SERVICE_ACCOUNT_EMAIL: la dirección de correo asociada a la cuenta de servicio de Compute Engine que has creado en el paso anterior.

Ejemplo

Por ejemplo, el siguiente comando exporta una imagen llamada my-image de my-project a un segmento de Cloud Storage llamado my-bucket con una cuenta de servicio que tiene el correo image-export-service-account@proj-12345.iam.gserviceaccount.com. De forma predeterminada, la imagen se exporta como un archivo disk.raw y se comprime en el formato de archivo tar.gz.

gcloud compute images export \
    --destination-uri gs://my-bucket/my-image.tar.gz \
    --image my-image \
    --project my-project \
    --compute-service-account image-export-service-account@proj-12345.iam.gserviceaccount.com
    

Para ver las marcas, consulta la documentación de referencia de gcloud compute images export.

REST

  1. Crea una cuenta de servicio y asigna los roles mínimos. Para obtener más información sobre cómo crear cuentas de servicio, consulta el artículo Crear y gestionar cuentas de servicio.

    Como mínimo, la cuenta de servicio de Compute Engine especificada debe tener asignados los siguientes roles:

    • roles/compute.storageAdmin
    • roles/storage.objectAdmin

    Para obtener más información, consulta Conceder los roles necesarios a la cuenta de servicio de Compute Engine.

  2. En la API, crea una solicitud POST a la API Cloud Build.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
      "timeout": "7200s",
      "steps":[
        {
          "args":[
            "-timeout=7000s",
            "-source_image=SOURCE_IMAGE",
            "-client_id=api",
            "-format=IMAGE_FORMAT",
            "-destination_uri=DESTINATION_URI",
            "-compute_service_account=SERVICE_ACCOUNT_EMAIL"
          ],
          "name":"gcr.io/compute-image-tools/gce_vm_image_export:release",
          "env":[
            "BUILD_ID=$BUILD_ID"
          ]
        }
      ],
      "tags":[
        "gce-daisy",
        "gce-daisy-image-export"
      ]
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto que contiene la imagen que quieres exportar.
    • SOURCE_IMAGE: el nombre de la imagen que se va a exportar.
    • IMAGE_FORMAT: formato de la imagen exportada. Los formatos válidos son vmdk, vhdx, vpc, vdi y qcow2.
    • DESTINATION_URI: el URI de Cloud Storage de la ubicación a la que quiere exportar el archivo de imagen. Por ejemplo, gs://my-bucket/my-exported-image.vmdk.
    • SERVICE_ACCOUNT_EMAIL: la dirección de correo asociada a la cuenta de servicio de Compute Engine que has creado en el paso anterior.

Para ver otros valores de args que se pueden proporcionar, consulta la sección de marcas opcionales de la página de GitHub sobre la exportación de imágenes de VM.

Exportar una imagen mediante VPC compartida

Antes de exportar una imagen que utilice una VPC compartida, debes añadir el rol compute.networkUser a la cuenta de servicio de Cloud Build en el proyecto desde el que exportes las imágenes. La cuenta de servicio que se usa en Cloud Build depende de si has usado Cloud Build en el proyecto antes de mayo del 2024. Si es así, se usará la cuenta de servicio antigua de Cloud Build para las compilaciones futuras. De lo contrario, se usará la cuenta de servicio predeterminada de Compute Engine.

Para obtener más información, consulta Conceder los roles necesarios a la cuenta de servicio de Cloud Build.

Puedes exportar tu imagen mediante la CLI de Google Cloud o REST.

gcloud

Usa el comando gcloud compute images export para exportar la imagen.

gcloud compute images export \
    --image IMAGE_NAME \
    --destination-uri DESTINATION_URI \
    --project PROJECT_ID \
    --network NETWORK \
    --subnet SUBNET \
    --zone ZONE

Haz los cambios siguientes:

  • IMAGE_NAME: el nombre de la imagen que se va a exportar.
  • DESTINATION_URI: el URI de Cloud Storage de la ubicación a la que quiere exportar el archivo de imagen.
  • PROJECT_ID: ID del proyecto en el que se encuentra la imagen.
  • NETWORK: la ruta completa a una red de VPC compartida. Por ejemplo, projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME.
  • SUBNET: opcional. La ruta completa a una subred de VPC compartida. Por ejemplo, projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.

    La especificación de este modo depende del modo de red VPC.

    • Si la red VPC usa el modo antiguo, no especifiques ninguna subred.
    • Si la red de VPC usa el modo automático, especificar la subred es opcional.
    • Si la red de VPC usa el modo personalizado, este campo debe especificarse.
  • ZONE: opcional. La zona que se va a usar para la exportación. Esta zona debe coincidir con la región de la subred. Por ejemplo, si el SUBNET está en la región us-west1, la zona de exportación debe ser una de las siguientes: us-west1-a, us-west1-b o us-west1-c.

    Si has especificado un SUBNET, también debes especificar la zona.

Por ejemplo, el siguiente comando exporta una imagen llamada example-image de my-project a un segmento de Cloud Storage llamado my-bucket. En este ejemplo, la red de nube privada virtual (my-shared-vp) usa una subred personalizada (my-custom-subnet). De forma predeterminada, la imagen se exporta como un archivo disk.raw y se comprime en el formato de archivo tar.gz.

Comando de ejemplo

gcloud compute images export \
    --image example-image \
    --destination-uri gs://my-bucket/my-image.tar.gz \
    --project my-project \
    --network projects/my-vpc-project/global/networks/my-shared-vpc \
    --subnet projects/my-vpc-project/regions/us-west1/subnetworks/my-custom-subnet \
    --zone us-west1-c
 

REST

  1. Añade la imagen a Cloud Storage.

  2. En la API, crea una solicitud POST a la API Cloud Build.

    POST https://cloudbuild.googleapis.com/v1/projects/PROJECT_ID/builds
    {
      "timeout": "7200s",
      "steps":[
        {
          "args":[
            "-timeout=7000s",
            "-source_image=SOURCE_IMAGE",
            "-client_id=api",
            "-format=IMAGE_FORMAT",
            "-destination_uri=DESTINATION_URI",
            "-network=NETWORK",
            "-subnet=SUBNET",
            "-zone=ZONE"
          ],
          "name":"gcr.io/compute-image-tools/gce_vm_image_export:release",
          "env":[
            "BUILD_ID=$BUILD_ID"
          ]
        }
      ],
      "tags":[
        "gce-daisy",
        "gce-daisy-image-export"
      ]
    }
    

    Haz los cambios siguientes:

    • PROJECT_ID: el ID del proyecto que contiene la imagen que quieres exportar.
    • SOURCE_IMAGE: el nombre de la imagen que se va a exportar.
    • IMAGE_FORMAT: el formato de la imagen exportada. Los formatos válidos son vmdk, vhdx, vpc, vdi y qcow2.
    • DESTINATION_URI: el URI de Cloud Storage de la ubicación a la que quiere exportar el archivo de imagen. Por ejemplo, gs://my-bucket/my-exported-image.vmdk.
    • NETWORK: ruta completa a una red de VPC compartida. Por ejemplo, projects/HOST_PROJECT_ID/global/networks/VPC_NETWORK_NAME.
    • SUBNET: la ruta completa a una subred de VPC compartida. Por ejemplo, projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME.

      La especificación de este modo depende del modo de red VPC.

      • Si la red VPC usa el modo antiguo, no especifiques ninguna subred.
      • Si la red VPC usa el modo automático, especificar la subred es opcional.
      • Si la red de VPC usa el modo personalizado, este campo debe especificarse.
    • ZONE: la zona que se va a usar para la exportación. Esta zona debe coincidir con la región de la subred. Por ejemplo, si el SUBNET está en la región us-west1, la zona de exportación debe ser una de las siguientes: us-west1-a, us-west1-b o us-west1-c.

      En la mayoría de los casos, especificar una zona es opcional. Si se especifica SUBNET, también se debe especificar la zona.

    Para ver otros valores de args que se pueden proporcionar, consulta la sección de marcas opcionales de la página de GitHub sobre la exportación de imágenes de VM.

Crear y exportar una imagen manualmente

Si los comandos gcloud compute images create y gcloud compute images export no cumplen tus requisitos, puedes crear y exportar una imagen manualmente desde una instancia de Compute Engine. Este proceso tiene pasos independientes para crear una imagen y, después, exportarla.

En el siguiente ejemplo, el disco creado se llama image-disk.

Para crear y exportar una imagen, sigue estos pasos:

  1. Opcional: Detén la instancia a la que está conectado el disco antes de crear la instantánea. Si detienes la instancia, te aseguras de que el contenido del disco de la instantánea sea íntegro.

  2. Crea una captura del disco. Ponle un nombre a la vista general image-snapshot.

    gcloud compute disks snapshot DISK_NAME \
        --snapshot-names image-snapshot

    Sustituye DISK_NAME por el nombre del disco que quieras usar para crear la captura. Puedes consultar el nombre del disco listando los discos.

  3. Usa la instantánea image-snapshot para crear un disco llamado image-disk ejecutando el siguiente comando:

    gcloud compute disks create image-disk \
        --source-snapshot image-snapshot
  4. Crea un disco temporal llamado temporary-disk para almacenar el archivo tar y especifica que el SIZE del disco sea al menos un 50% más grande que el disco de imagen.

    Después, puedes desvincular y eliminar el disco.

    gcloud compute disks create temporary-disk \
        --size SIZE

    donde SIZE es el tamaño, en gigabytes o terabytes, del disco temporal. Por ejemplo, especifica 100GB para crear un disco de 100 gigabytes.

  5. Crea una instancia y habilita el ámbito storage-rw en ella. Además, adjunta image-disk y temporary-disk a la instancia como discos secundarios con atributos device-name específicos. Sustituye VM_NAME por el nombre de la instancia que quieras crear.

    gcloud compute instances create VM_NAME \
        --scopes storage-rw \
        --disk name=image-disk,device-name=image-disk \
        --disk name=temporary-disk,device-name=temporary-disk

    Ten en cuenta que estás transfiriendo los ámbitos de la cuenta de servicio para poder subir el archivo a Cloud Storage en pasos posteriores.

    Consulta los detalles sobre cómo iniciar una nueva instancia si es necesario.

  6. Conéctate a tu instancia. Sustituye VM_NAME por el nombre de la instancia a la que quieres conectarte.

    gcloud compute ssh VM_NAME
  7. Formatea y monta el disco temporal. Al formatear el disco, se elimina el contenido del disco temporal.

    sudo mkdir /mnt/tmp
    sudo mkfs.ext4 -F /dev/disk/by-id/google-temporary-disk
    sudo mount -o discard,defaults /dev/disk/by-id/google-temporary-disk /mnt/tmp
  8. Opcional: Monta el disco de imagen y haz cambios adicionales antes de crear el archivo tar. Por ejemplo, puedes eliminar los archivos del directorio /home si no quieres que formen parte de tu imagen. Monta las particiones del disco que necesites modificar, modifica los archivos del disco que quieras cambiar y, a continuación, desmonta el disco cuando hayas terminado.

    1. Crea un directorio en el que puedas montar el disco o la partición.

      sudo mkdir /mnt/image-disk
    2. Usa el comando ls para determinar qué disco o partición de disco necesitas montar.

      ls /dev/disk/by-id/

      El comando imprime una lista de IDs de disco y particiones. Por ejemplo, el siguiente disco tiene una tabla de particiones con una partición. El ID google-image-disk apunta al disco completo del que quieres crear una imagen. El ID google-image-disk-part1 apunta a la primera partición de este disco. Monta la partición si necesitas hacer cambios en el disco y, a continuación, crea la imagen del disco completo.

      google-image-disk
      google-image-disk-part1
      
    3. Monta el disco o la partición. Si tu disco tiene una tabla de particiones, monta las particiones individuales del disco. Por ejemplo, mount google-image-disk-part1.

      sudo mount /dev/disk/by-id/google-image-disk-part1 /mnt/image-disk

      También puedes montar el disco google-image-disk completo si está en formato sin procesar y no tiene tabla de particiones.

      sudo mount /dev/disk/by-id/google-image-disk /mnt/image-disk
    4. Modifica los archivos del directorio /mnt/image-disk para configurar los archivos del disco. Por ejemplo, puedes eliminar el archivo /mnt/image-disk/home/[USER]/.ssh/authorized_keys para proteger tus claves SSH y evitar que se compartan.

    5. Cuando hayas terminado de modificar los archivos, desmonta el disco.

      sudo umount /mnt/image-disk/
  9. Crea un archivo tar de tu imagen.

    Cuando termines de personalizar los archivos del disco de imagen, crea un archivo de disco sin formato en el disco temporal. El nombre de la imagen de disco sin formato debe ser "disk.raw":

     sudo dd if=/dev/disk/by-id/google-image-disk of=/mnt/tmp/disk.raw bs=4096

    A continuación, crea el archivo tar.gz:

    cd /mnt/tmp

    sudo tar czvf myimage.tar.gz disk.raw

    Este comando crea una imagen de la instancia en la siguiente ubicación:

    /mnt/tmp/myimage.tar.gz

  10. Sube la imagen a Cloud Storage.

    Para subir el archivo tar a Cloud Storage, usa Google Cloud CLI, que viene preinstalado en tu instancia.

    1. Crea un segmento con la CLI de gcloud.

      Antes de crear un segmento, consulta las directrices de asignación de nombres para segmentos y objetos. A continuación, crea el segmento con el siguiente comando. Sustituye BUCKET_NAME por el nombre del segmento que quieras crear.

      me@example-instance:~$ 
      gcloud storage buckets create gs://BUCKET_NAME
    2. Copia el archivo en el nuevo segmento. Sustituye BUCKET_NAME por el nombre del bucket al que quieras copiar el archivo.

      me@example-instance:~$ 
      gcloud storage cp /mnt/tmp/myimage.tar.gz gs://BUCKET_NAME

Ha exportado el archivo a Cloud Storage. Ahora puedes compartir la imagen con otras personas o usar el archivo tar para añadir una nueva imagen a un proyecto de la consolaGoogle Cloud .

Siguientes pasos