Compila tu imagen de máquina virtual (VM)

En esta página, se te ayuda a crear una imagen de máquina pública para que tu producto se ejecute en Compute Engine.

Una imagen contiene un cargador de arranque, un sistema operativo y un sistema de archivos raíz necesario para iniciar una instancia. Puedes configurar la imagen con un conjunto de apps y servicios para tu producto. Los clientes utilizan la imagen para iniciar una instancia de máquina virtual (VM) en la nube.

Recomendamos que comiences a crear una imagen en tu proyecto de desarrollo y, luego, la muevas a tu proyecto público después de que la verifique tu Ingeniero socio de Google.

Antes de comenzar

  1. Descarga el SDK de Google Cloud.

Crea la VM del producto base

A fin de crear una imagen de máquina personalizada para Google Cloud Marketplace, debes completar estos pasos (descritos en las siguientes secciones):

Crea una imagen de VM con licencia

Producer Portal

  1. Usa gcloud para establecer valores predeterminados para el SDK de Cloud:

    gcloud config set project <project_id>
    gcloud config set compute/zone <zone>
  2. Crea una instancia principal que se utilice para instalar tu software y, luego, se convierta en una imagen para usar en Google Cloud Marketplace. Para obtener más información sobre cómo crear una instancia, consulta Crea y, luego, inicia una instancia.

    gcloud compute instances create ${INSTANCE} --scopes
    https://www.googleapis.com/auth/cloud-platform 
  3. Instala y personaliza tu software. Incluye todas las secuencias de comandos de inicio requeridas, como aquellas para crear credenciales de autorización.

    Para crear credenciales de autorización con contraseñas aleatorias seguras, sigue los pasos que se indican en Crear credenciales de autorización, en la sección siguiente.

  4. Agrega los archivos de texto de licencia de código abierto y el código fuente en la VM (si corresponde). Consulta el documento de cumplimiento de código abierto para ver los requisitos.

    Una vez que hayas creado y personalizado la instancia principal, prepara el disco necesario para crear una imagen de VM.

  5. Limpia tu disco. Cuando se crea una imagen de VM directamente desde la VM, también se transfieren los directorios de usuarios y las Llaves SSH a las VM de tus clientes, por lo que debes limpiar el disco de entrada cuando creas la imagen de VM.

    Haz lo siguiente para limpiar el disco:

    1. En el menú Instancias de VM de Compute Engine, haz clic en el nombre de la instancia que deseas limpiar y, luego, en Editar.

    2. Desplázate hacia abajo y borra la casilla de verificación Borrar disco de arranque cuando se borre la instancia y haz clic en Guardar. Usa el disco para crear la imagen.

    3. Borra la VM, pero conserva el disco. Se te solicitará que confirmes la eliminación. No selecciones Borrar también disco de arranque.

    4. A continuación, debes crear una instancia de VM nueva. Expande las opciones Administración, disco, herramientas, Llaves SSH.

    5. En disco, adjunta el disco de tu instancia anterior como disco de datos adicional. Asegúrate de que Mantener disco esté seleccionado para Cuando se borra la instancia.

      Ahora puedes establecer una conexión SSH a la instancia y quitar los directorios principales o cualquier otro archivo temporal creado durante el proceso de instalación del software. Debes activar el disco de datos para poder acceder a él. Para obtener más información sobre cómo activar discos, consulta Agrega o cambia el tamaño de los discos persistentes.

    6. Cuando termines, cierra y borra la instancia, y conserva tu disco de datos actualizado. Ahora puedes crear una imagen de VM si completas los siguientes pasos.

  6. Obtén el nombre de licencia para tu producto de VM en el Portal de productor mediante los siguientes pasos:

    1. Abre el portal productor en Google Cloud Console:

      https://console.cloud.google.com/producer-portal?project=YOUR_PROJECT_ID
      

      Reemplaza YOUR_PROJECT_ID por el ID del proyecto de desarrollo o público. Recomendamos que comiences con la creación de una imagen en tu proyecto de desarrollo y que la muevas a tu proyecto público después de que tu Ingeniero socio de Google verifique la imagen.

    2. Haga clic en el nombre de su producto.

    3. Ve a la sección Paquete de implementación. En Licencia de VM, anota el nombre. Usa este nombre de licencia en el siguiente paso, cuando crees tu imagen.

  7. Para crear una imagen con licencia, ejecuta el siguiente comando gcloud:

    gcloud compute images create CREATE_IMAGE_NAME \
    --project PUBLIC_PROJECT_NAME \
    --source-disk projects/DEV_PROJECT_NAME/zones/SOURCE_DISK_ZONE/disks/SOURCE_DISK_NAME \
    --licenses projects/PUBLIC_PROJECT_NAME/global/licenses/LICENSE_NAME \
    --description ADD_DESCRIPTION
    

    Reemplaza lo siguiente:

    • CREATE_IMAGE_NAME: El nombre de tu imagen, en el formato who-vmOS-image-date. Debes usar un nombre nuevo y único cada vez que actualices la imagen de tu producto.
    • PUBLIC_PROJECT_NAME: El ID del proyecto para tu proyecto público para Google Cloud Marketplace.
    • LICENSE_NAME: El nombre de la licencia de tu producto de VM que anotaste en el paso anterior.
    • DEV_PROJECT_NAME: El ID del proyecto que creaste para el desarrollo y las pruebas para Google Cloud Marketplace.
    • SOURCE_DISK_ZONE es la zona del disco de origen.
    • SOURCE_DISK_NAME: Es el nombre del disco de origen.
    • ADD_DESCRIPTION: Una descripción textual opcional de la imagen que se crea.

Portal para socios

  1. Usa gcloud para establecer valores predeterminados para el SDK de Cloud:

    gcloud config set project <project_id>
    gcloud config set compute/zone <zone>
  2. Crea una instancia principal que se utilice para instalar tu software y, luego, se convierta en una imagen para usar en Google Cloud Marketplace. Para obtener más información sobre cómo crear una instancia, consulta Crea y, luego, inicia una instancia.

    gcloud compute instances create ${INSTANCE} --scopes
    https://www.googleapis.com/auth/cloud-platform 
  3. Instala y personaliza tu software. Incluye todas las secuencias de comandos de inicio requeridas, como aquellas para crear credenciales de autorización.

    Para crear credenciales de autorización con contraseñas aleatorias seguras, sigue los pasos que se indican en Crear credenciales de autorización, en la sección siguiente.

  4. Agrega los archivos de texto de licencia de código abierto y el código fuente en la VM (si corresponde). Consulta el documento de cumplimiento de código abierto para ver los requisitos.

    Una vez que hayas creado y personalizado la instancia principal, prepara el disco necesario para crear una imagen de VM.

  5. Limpia tu disco. Cuando se crea una imagen de VM directamente desde la VM, también se transfieren los directorios de usuarios y las Llaves SSH a las VM de tus clientes, por lo que debes limpiar el disco de entrada cuando creas la imagen de VM.

    Haz lo siguiente para limpiar el disco:

    1. En el menú VM Instancesde Compute Engine, haz clic en el nombre de la instancia que deseas limpiar y luego haz clic en Editar.

    2. Desplázate hacia abajo y borra la casilla de verificación Borrar disco de arranque cuando se borre la instancia y haz clic en Guardar. Usa el disco para crear la imagen.

    3. Borra la VM, pero conserva el disco. Se te solicitará que confirmes la eliminación. No selecciones Borrar también disco de arranque.

    4. A continuación, debes crear una instancia de VM nueva. Expande las opciones Administración, disco, herramientas de redes y Llaves SSH.

    5. En disco, adjunta el disco de tu instancia anterior como disco de datos adicional. Asegúrate de que Mantener disco esté seleccionado para Cuando se borra la instancia.

      Ahora puedes establecer una conexión SSH a la instancia y quitar los directorios principales o cualquier otro archivo temporal creado durante el proceso de instalación del software. Debes activar el disco de datos para poder acceder a él. Para obtener más información sobre cómo activar discos, consulta Agrega o cambia el tamaño de los discos persistentes.

    6. Cuando termines, cierra y borra la instancia, y conserva tu disco de datos actualizado. Ahora puedes crear una imagen de VM si completas los siguientes pasos.

  6. Obtén el nombre de licencia para tu producto en el portal de Partners mediante estos pasos:

    1. Haz clic en el ID de la solución para tu producto.

    2. Haz clic para editar los metadatos de la solución.

    3. En los metadatos de la solución, en la sección Licencias y precios, en Nombre de la licencia, toma nota del nombre de tu licencia. Debes usar este nombre de licencia más adelante, cuando uses gcloud para crear tu imagen.

  7. Crea una imagen con licencia mediante la ejecución del siguiente comando gcloud:

    gcloud compute images create CREATE_IMAGE_NAME \
    --project PUBLIC_PROJECT_NAME \
    --source-disk projects/DEV_PROJECT_NAME/zones/SOURCE_DISK_ZONE/disks/SOURCE_DISK_NAME \
    --licenses projects/PUBLIC_PROJECT_NAME/global/licenses/LICENSE_NAME \
    --description ADD_DESCRIPTION
    

Crear credenciales de autorización

Si tu producto es una implementación simple de una sola instancia de VM con reglas de firewall básicas, puedes incluir automáticamente una contraseña aleatoria segura cuando configures directamente tu paquete de implementación.

Si planeas crear tu paquete de implementación con el comandocódigo abiertompdev herramienta , que recomendamos para la mayoría de los casos prácticos, luego puedes usarmpdev incluir automáticamente contraseñas aleatorias seguras.

A fin de obtener instrucciones para crear las credenciales de autorización, consulta Crea tu paquete de implementación.

Después de que tu producto se haya implementado, para obtener los valores de cualquier contraseña que creaste, usa el siguiente comando desde tu instancia de VM:

curl -H "Metadata-Flavor: Google" \
http://metadata/computeMetadata/v1/instance/attributes/PASSWORD_NAME

Prueba la imagen de VM

Crea una instancia de VM con tu imagen recién creada y verifica la funcionalidad.

Además, para verificar el ID de la licencia, establece una conexión SSH a la instancia y verifica que las licencias válidas estén adjuntas:

curl -s -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/licenses/?recursive=true

Verifica que esté instalado Python 2.6 o superior.

python -V

Verifica que estén instalados los siguientes paquetes.

gcloud --version
gsutil --version
ssh -V
ps aux | grep sshd
curl -V
ps aux | grep dhcp

Verifica para asegurarte de que no haya otros directorios de usuarios instalados en la instancia, excepto el tuyo, y que no haya ningún directorio de usuario y credenciales que no sean tuyas.