Especifica la imagen de SO de la VM para un trabajo

En esta página, se describe cómo especificar la imagen del sistema operativo (SO) para las instancias de máquina virtual (VM) en las que se ejecuta un trabajo. Si también deseas personalizar otras propiedades de los discos de arranque del trabajo, consulta Crea y ejecuta un trabajo que use discos de arranque personalizados.

Para obtener más información sobre las imágenes de SO de VM y qué imágenes de SO de VM puedes usar, consulta la Descripción general del entorno de SO de VM.

Antes de comenzar

Crea y ejecuta un trabajo que use una imagen de SO de VM específica

Para especificar la imagen de SO de la VM cuando crees un trabajo, selecciona uno de los siguientes métodos:

  • Usa una plantilla de instancias de Compute Engine que especifique una imagen de SO de VM. Si deseas usar una plantilla de instancias de VM mientras creas este trabajo, debes especificar la imagen de SO de la VM en la plantilla. Para obtener instrucciones, consulta Define los recursos de trabajo con una plantilla de instancias de VM.
  • Usa el campo de imagen de SO de la VM. Como se explica en las siguientes instrucciones, puedes especificar la imagen de SO de la VM en el campo image mediante gcloud CLI o la API de Batch.

gcloud

  1. Crea un archivo JSON que especifique los detalles de configuración de tu trabajo. Para especificar la imagen de SO de la VM para el trabajo, incluye el campo image.

    Por ejemplo, para crear un trabajo de secuencia de comandos básico que use una imagen de SO de VM específica, crea un archivo JSON con el siguiente contenido:

    {
        "taskGroups": [
            {
                "taskSpec": {
                    "runnables": [
                        {
                            "script": {
                                "text": "echo Hello world from task ${BATCH_TASK_INDEX}."
                            }
                        }
                    ]
                },
                "taskCount": 3,
                "parallelism": 1
            }
        ],
        "allocationPolicy": {
          "instances": [
            {
              "policy": {
                "bootDisk": {
                  "image": "VM_OS_IMAGE_URI"
                }
              }
            }
          ]
        },
        "logsPolicy": {
        "destination": "CLOUD_LOGGING"
      }
    }
    

    Reemplaza VM_OS_IMAGE_URI por un nombre de recurso relativo de la imagen de SO de la VM. Usa una de las siguientes opciones:

    • Especifica un prefijo de Batch OS. Para usar la imagen más reciente de un SO de Batch específico, usa el siguiente formato:

      BATCH_OS_PREFIX
      

      Reemplaza BATCH_OS_PREFIX por uno de los prefijos de imagen de SO de la VM de Batch, por ejemplo, batch-debian es el prefijo del SO de Debian de Batch.

    • Especifica una familia de imágenes. Para usar la imagen más reciente de una familia de imágenes específica, emplea el siguiente formato:

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      Reemplaza lo siguiente:

      • IMAGE_PROJECT_ID: Es el ID del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes por lotes, especifica batch-custom-image.
      • IMAGE_FAMILY: Es la familia de imágenes, que incluye una o más imágenes específicas y representa el tipo y la versión principal del SO. Por ejemplo, para ver todas las familias de imagen de SO de VM de Batch, consulta una lista de imágenes de SO de VM.
    • Especifica una versión de la imagen. Para usar una versión específica de una imagen de SO de VM, usa el siguiente formato:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      Reemplaza lo siguiente:

      • IMAGE_PROJECT_ID: Es el ID del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes por lotes, especifica batch-custom-image.
      • IMAGE_NAME: Es el nombre de la imagen, que representa una versión específica de una imagen de SO de VM. Por ejemplo, para ver todas las versiones de imagen de SO de VM de Batch, consulta una lista de imágenes de SO de VM.
  2. Para crear el trabajo, ejecuta el siguiente comando gcloud batch jobs submit:

    gcloud batch jobs submit JOB_NAME \
        --location LOCATION \
        --config JSON_CONFIGURATION_FILE
    

    Reemplaza lo siguiente:

    • JOB_NAME: Es el nombre de este trabajo.
    • LOCATION: Es la ubicación de este trabajo.
    • JSON_CONFIGURATION_FILE: Es la ruta al archivo JSON con los detalles de configuración del trabajo.

API

Para crear un trabajo con la API de Batch, usa el método jobs.create y especifica los detalles de configuración de tu trabajo. Para especificar la imagen de SO de la VM para el trabajo, incluye el campo image. Por ejemplo, para crear un trabajo básico de secuencia de comandos que use una imagen de SO de VM específica, realiza la siguiente solicitud POST:

POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/jobs?job_id=JOB_NAME

{
    "taskGroups": [
        {
            "taskSpec": {
                "runnables": [
                    {
                        "script": {
                            "text": "echo Hello world from task ${BATCH_TASK_INDEX}."
                        }
                    }
                ]
            },
            "taskCount": 3,
            "parallelism": 1
        }
    ],
    "allocationPolicy": {
      "instances": [
        {
          "policy": {
            "bootDisk": {
              "image": "VM_OS_IMAGE_URI"
            }
          }
        }
      ]
    },
    "logsPolicy": {
    "destination": "CLOUD_LOGGING"
  }
}

Reemplaza lo siguiente:

  • PROJECT_ID: Es el ID del proyecto.
  • LOCATION: Es la ubicación de este trabajo.
  • JOB_NAME: Es el nombre de este trabajo.
  • VM_OS_IMAGE_URI: Es un nombre de recurso relativo de la imagen de SO de la VM. Usa una de las siguientes opciones:

    • Especifica un prefijo de Batch OS. Para usar la imagen más reciente de un SO de Batch específico, usa el siguiente formato:
    BATCH_OS_PREFIX
    

    Reemplaza BATCH_OS_PREFIX por uno de los prefijos de imagen de SO de la VM de Batch, por ejemplo, batch-debian es el prefijo del SO de Debian de Batch.

    • Especifica una familia de imágenes. Para usar la imagen más reciente de una familia de imágenes específica, emplea el siguiente formato:

      projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
      

      Reemplaza lo siguiente:

      • IMAGE_PROJECT_ID: Es el ID del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes por lotes, especifica batch-custom-image.
      • IMAGE_FAMILY: Es la familia de imágenes, que incluye una o más imágenes específicas y representa el tipo y la versión principal del SO. Por ejemplo, para ver todas las familias de imagen de SO de VM de Batch, consulta una lista de imágenes de SO de VM.
    • Especifica una versión de la imagen. Para usar una versión específica de una imagen de SO de VM, usa el siguiente formato:

      projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
      

      Reemplaza lo siguiente:

      • IMAGE_PROJECT_ID: Es el ID del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes por lotes, especifica batch-custom-image.
      • IMAGE_NAME: Es el nombre de la imagen, que representa una versión específica de una imagen de SO de VM. Por ejemplo, para ver todas las versiones de imagen de SO de VM de Batch, consulta una lista de imágenes de SO de VM.

¿Qué sigue?