Cette page explique comment spécifier l'image du système d'exploitation (OS) pour les instances de machines virtuelles (VM) sur lesquelles un job s'exécute. Si vous souhaitez également personnaliser d'autres propriétés des disques de démarrage du job, consultez plutôt Créer et exécuter un job qui utilise des disques de démarrage personnalisés.
Pour en savoir plus sur les images d'OS de VM et celles que vous pouvez utiliser, consultez Présentation de l'environnement d'OS de VM.
Avant de commencer
- Si vous n'avez jamais utilisé Batch, consultez Premiers pas avec Batch et activez Batch en remplissant les conditions préalables pour les projets et les utilisateurs.
-
Pour obtenir les autorisations nécessaires pour créer un job, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Éditeur de tâches par lot (
roles/batch.jobsEditor
) sur le projet -
Utilisateur du compte de service (
roles/iam.serviceAccountUser
) sur le compte de service du job, qui par défaut est le compte de service Compute Engine par défaut
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Vous pouvez également obtenir les autorisations requises avec des rôles personnalisés ou d'autres rôles prédéfinis.
-
Éditeur de tâches par lot (
Créer et exécuter un job qui utilise une image d'OS de VM spécifique
Spécifiez l'image de l'OS de la VM lorsque vous créez un job en sélectionnant l'une des méthodes suivantes :
- Utilisez un modèle d'instance Compute Engine qui spécifie une image d'OS de VM. Si vous souhaitez utiliser un modèle d'instance de VM lors de la création de ce job, vous devez spécifier l'image d'OS de la VM dans le modèle d'instance de VM. Pour obtenir des instructions, consultez Définir des ressources de job à l'aide d'un modèle d'instance de VM.
Utilisez le champ "Image d'OS de la VM". Comme l'expliquent les instructions suivantes, vous pouvez spécifier l'image de l'OS de la VM dans le champ
image
à l'aide de la gcloud CLI ou de l'API Batch.
gcloud
Créez un fichier JSON qui spécifie les détails de configuration de votre job. Pour spécifier l'image de l'OS de la VM pour le job, incluez le champ
image
.Par exemple, pour créer un job de script de base qui utilise une image d'OS de VM spécifique, créez un fichier JSON avec le contenu suivant :
{ "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" } }
Remplacez
VM_OS_IMAGE_URI
par le nom de ressource relatif de l'image d'OS de la VM. Utilisez l'une des options suivantes :Spécifiez un préfixe d'OS Batch. Pour utiliser la dernière image d'un OS Batch spécifique, utilisez le format suivant :
BATCH_OS_PREFIX
Remplacez
BATCH_OS_PREFIX
par l'un des préfixes d'image d'OS de VM Batch. Par exemple,batch-debian
est le préfixe de l'OS Batch Debian.Spécifiez une famille d'images. Pour utiliser la dernière image d'une famille d'images spécifique, utilisez le format suivant :
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
Remplacez les éléments suivants :
IMAGE_PROJECT_ID
: ID du projet contenant l'image. Par exemple, pour toutes les images Batch, spécifiezbatch-custom-image
.IMAGE_FAMILY
: famille d'images, qui inclut une ou plusieurs images spécifiques et représente le type et la version majeure de l'OS. Par exemple, pour afficher toutes les familles d'images d'OS de VM à partir de Batch, affichez la liste des images d'OS de VM.
Spécifiez une version d'image. Pour utiliser une version spécifique d'une image d'OS de VM, utilisez le format suivant :
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Remplacez les éléments suivants :
IMAGE_PROJECT_ID
: ID du projet contenant l'image. Par exemple, pour toutes les images Batch, spécifiezbatch-custom-image
.IMAGE_NAME
: nom de l'image, qui représente une version spécifique d'une image d'OS de VM. Par exemple, pour afficher toutes les versions d'image d'OS de VM à partir de Batch, affichez la liste des images d'OS de VM.
Pour créer le job, exécutez la commande
gcloud batch jobs submit
suivante :gcloud batch jobs submit JOB_NAME \ --location LOCATION \ --config JSON_CONFIGURATION_FILE
Remplacez les éléments suivants :
JOB_NAME
: nom de ce job.LOCATION
: emplacement de ce job.JSON_CONFIGURATION_FILE
: chemin d'accès au fichier JSON contenant les détails de configuration du job.
API
Pour créer un job à l'aide de l'API Batch, utilisez la méthode jobs.create
et spécifiez les détails de configuration de votre job.
Pour spécifier l'image de l'OS de la VM pour le job, incluez le champ image
.
Par exemple, pour créer un job de script de base qui utilise une image d'OS de VM spécifique, exécutez la requête POST
suivante :
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"
}
}
Remplacez les éléments suivants :
PROJECT_ID
: ID de projet de votre projet.LOCATION
: emplacement de ce job.JOB_NAME
: nom de ce job.VM_OS_IMAGE_URI
: nom de ressource relatif de l'image d'OS de la VM. Utilisez l'une des options suivantes :- Spécifiez un préfixe d'OS Batch. Pour utiliser la dernière image d'un OS Batch spécifique, utilisez le format suivant :
BATCH_OS_PREFIX
Remplacez
BATCH_OS_PREFIX
par l'un des préfixes d'image d'OS de VM Batch. Par exemple,batch-debian
est le préfixe de l'OS Batch Debian.Spécifiez une famille d'images. Pour utiliser la dernière image d'une famille d'images spécifique, utilisez le format suivant :
projects/IMAGE_PROJECT_ID/global/images/family/IMAGE_FAMILY
Remplacez les éléments suivants :
IMAGE_PROJECT_ID
: ID du projet contenant l'image. Par exemple, pour toutes les images Batch, spécifiezbatch-custom-image
.IMAGE_FAMILY
: famille d'images, qui inclut une ou plusieurs images spécifiques et représente le type et la version majeure de l'OS. Par exemple, pour afficher toutes les familles d'images d'OS de VM à partir de Batch, affichez la liste des images d'OS de VM.
Spécifiez une version d'image. Pour utiliser une version spécifique d'une image d'OS de VM, utilisez le format suivant :
projects/IMAGE_PROJECT_ID/global/images/IMAGE_NAME
Remplacez les éléments suivants :
IMAGE_PROJECT_ID
: ID du projet contenant l'image. Par exemple, pour toutes les images Batch, spécifiezbatch-custom-image
.IMAGE_NAME
: nom de l'image, qui représente une version spécifique d'une image d'OS de VM. Par exemple, pour afficher toutes les versions d'image d'OS de VM à partir de Batch, affichez la liste des images d'OS de VM.
Étapes suivantes
- Si vous rencontrez des problèmes pour créer ou exécuter un job, consultez la section Dépannage.
- En savoir plus sur les images d'OS de VM
- Découvrez comment créer un job.
- Découvrez comment afficher les tâches et les jobs.