En esta página se describe cómo especificar la imagen del sistema operativo (SO) de las instancias de máquina virtual (VM) en las que se ejecuta un trabajo. Si también quiere personalizar otras propiedades de los discos de arranque del trabajo, consulte Crear y ejecutar un trabajo que use discos de arranque personalizados.
Para obtener más información sobre las imágenes de SO de VM y cuáles puedes usar, consulta la descripción general del entorno de SO de VM.
Antes de empezar
- Si no has usado Batch antes, consulta el artículo Empezar a usar Batch y habilita Batch completando los requisitos previos para proyectos y usuarios.
-
Para obtener los permisos que necesitas para crear un trabajo, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:
-
Editor de trabajos por lotes (
roles/batch.jobsEditor
) en el proyecto -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
) en la cuenta de servicio del trabajo, que de forma predeterminada es la cuenta de servicio predeterminada de Compute Engine
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.
-
Editor de trabajos por lotes (
Crear y ejecutar un trabajo que use una imagen de SO de VM específica
Especifica la imagen del SO de la VM al crear un trabajo. Para ello, selecciona uno de los siguientes métodos:
- Usa una plantilla de instancia de Compute Engine que especifique una imagen del SO de la VM. Si quieres usar una plantilla de instancia de VM al crear este trabajo, debes especificar la imagen del SO de la VM en la plantilla de instancia de VM. Para obtener instrucciones, consulta Definir recursos de trabajo con una plantilla de instancia de VM.
Usa el campo Imagen del SO de la VM. Como se explica en las siguientes instrucciones, puedes especificar la imagen del SO de la VM en el campo
image
mediante la CLI de gcloud o la API Batch.
gcloud
Crea un archivo JSON que especifique los detalles de configuración del trabajo. Para especificar la imagen del SO de la VM del trabajo, incluye el campo
image
.Por ejemplo, para crear un trabajo de secuencia de comandos básico que utilice 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" } }
Sustituye
VM_OS_IMAGE_URI
por un nombre de recurso relativo de la imagen del SO de la VM. Usa una de las siguientes opciones:Especifica un prefijo de SO por lotes. Para usar la imagen más reciente de un SO de Batch específico, usa el siguiente formato:
BATCH_OS_PREFIX
Sustituye
BATCH_OS_PREFIX
por uno de los prefijos de imagen de SO de VM por lotes. Por ejemplo,batch-debian
es el prefijo del SO Debian por lotes.Especifica una familia de imágenes. Para usar la imagen más reciente de una familia de imágenes específica, usa el siguiente formato:
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
Haz los cambios siguientes:
IMAGE_PROJECT_ID
: el ID del proyecto del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes de Batch, especificabatch-custom-image
.IMAGE_FAMILY
: la familia de imágenes, que incluye una o varias imágenes específicas y representa el tipo y la versión principal del SO. Por ejemplo, para ver todas las familias de imágenes de SO de máquinas virtuales de Batch, consulta la lista de imágenes de SO de máquinas virtuales.
Especifica una versión de la imagen. Para usar una versión específica de una imagen del SO de una VM, utiliza el siguiente formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Haz los cambios siguientes:
IMAGE_PROJECT_ID
: el ID del proyecto del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes de Batch, especificabatch-custom-image
.IMAGE_NAME
: el nombre de la imagen, que representa una versión específica de una imagen del SO de una VM. Por ejemplo, para ver todas las versiones de la imagen del SO de la máquina virtual de Batch, consulta la lista de imágenes del SO de la máquina virtual.
Para crear el trabajo, ejecuta el siguiente
gcloud batch jobs submit
comando:gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Haz los cambios siguientes:
JOB_NAME
: el nombre de este trabajo.LOCATION
: la ubicación de este trabajo.JSON_CONFIGURATION_FILE
: la ruta al archivo JSON con los detalles de configuración del trabajo.
API
Para crear un trabajo con la API Batch, usa el método jobs.create
y especifica los detalles de configuración del trabajo.
Para especificar la imagen del SO de la VM del trabajo, incluye el campo image
.
Por ejemplo, para crear un trabajo de secuencia de comandos básico que utilice una imagen de SO de VM específica, haz 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"
}
}
Haz los cambios siguientes:
PROJECT_ID
: el ID de proyecto de tu proyecto.LOCATION
: la ubicación de este trabajo.JOB_NAME
: el nombre de este trabajo.VM_OS_IMAGE_URI
: un nombre de recurso relativo de la imagen del SO de la VM. Usa una de las siguientes opciones:- Especifica un prefijo de SO por lotes. Para usar la imagen más reciente de un SO de Batch específico, usa el siguiente formato:
BATCH_OS_PREFIX
Sustituye
BATCH_OS_PREFIX
por uno de los prefijos de imagen de SO de VM por lotes. Por ejemplo,batch-debian
es el prefijo del SO Debian por lotes.Especifica una familia de imágenes. Para usar la imagen más reciente de una familia de imágenes específica, usa el siguiente formato:
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
Haz los cambios siguientes:
IMAGE_PROJECT_ID
: el ID del proyecto del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes de Batch, especificabatch-custom-image
.IMAGE_FAMILY
: la familia de imágenes, que incluye una o varias imágenes específicas y representa el tipo y la versión principal del SO. Por ejemplo, para ver todas las familias de imágenes de SO de máquinas virtuales de Batch, consulta la lista de imágenes de SO de máquinas virtuales.
Especifica una versión de la imagen. Para usar una versión específica de una imagen del SO de una VM, utiliza el siguiente formato:
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Haz los cambios siguientes:
IMAGE_PROJECT_ID
: el ID del proyecto del proyecto que contiene la imagen. Por ejemplo, para todas las imágenes de Batch, especificabatch-custom-image
.IMAGE_NAME
: el nombre de la imagen, que representa una versión específica de una imagen del SO de una VM. Por ejemplo, para ver todas las versiones de la imagen del SO de la máquina virtual de Batch, consulta la lista de imágenes del SO de la máquina virtual.
Siguientes pasos
- Si tienes problemas para crear o ejecutar un trabajo, consulta la sección Solución de problemas.
- Consulta más información sobre las imágenes del SO de las VMs.
- Más información sobre cómo crear un trabajo
- Consulta cómo ver trabajos y tareas.