Ajout d'expressions d'utilisation autorisée aux images personnalisées
Utilisez une expression d'utilisation autorisée avec votre image personnalisée pour définir les capacités et les restrictions d'une image et vous aider à trouver des combinaisons d'images et de profils compatibles lors de la création du serveur.
Vous pouvez utiliser des expressions d'utilisation autorisée pour configurer les profils, les images et les paramètres de serveur qui peuvent être utilisés ensemble lorsque vous provisionnez une instance de serveur virtuel ou un serveur bare metal. Lorsque vous effectuez des sélections pour créer une instance de serveur virtuel ou un serveur bare metal, si vous utilisez une image personnalisée avec des expressions d'utilisation autorisée définies, vous pouvez alors déterminer quels profils sont compatibles avec ces expressions.
Lors de la création d'une instance de serveur virtuel ou d'un serveur bare metal avec des images personnalisées ayant une expression d'utilisation autorisée, les informations fournies dans les propriétés d'utilisation autorisée sont ensuite évaluées par rapport aux propriétés d'une instance de serveur virtuel potentielle ou d'un serveur bare metal afin de déterminer si cette image personnalisée peut être utilisée pour créer l'instance de serveur virtuel ou le serveur bare metal.
L'interface utilisateur, l'interface de programmation et l'API vous permettent de définir des expressions d'utilisation autorisée pour toute image personnalisée, image de volume, volume de démarrage détaché ou instantanés de volumes de démarrage. IBM Cloud® Virtual Private Cloud définit les expressions d'utilisation autorisée pour toutes les images de stock, mais vous pouvez les définir pour toute image personnalisée que vous avez créée. La valeur par défaut est "true", ce qui signifie que l'image personnalisée peut être utilisée avec toutes les dispositions potentielles du serveur. Vous devez définir ou modifier les expressions d'utilisation autorisée si vous ne souhaitez pas que l'image personnalisée soit utilisée dans des situations spécifiques.
Pour les images personnalisées et les images partagées avec un catalogue privé, vous pouvez définir les expressions d'utilisation autorisée lors de la création de l'image dans IBM Cloud VPC. Pour les images de volumes, les volumes de démarrage détachés et les instantanés de volumes de démarrage, les expressions d'utilisation autorisée sont héritées de la source par défaut. Cependant, vous pouvez remplacer ces expressions lors de la création de la ressource. Pour toutes les images, les volumes d'amorçage et les instantanés de volumes d'amorçage, les expressions d'utilisation autorisée peuvent être mises à jour après la création.
Pour plus d'informations sur les profils de serveurs virtuels x86 et pour obtenir les informations permettant de définir les expressions d'utilisation autorisée que vous souhaitez utiliser pour votre image personnalisée, voir x86-64 instances profiles. Pour plus d'informations sur les profils de serveur bare metal x86-64, voir x86-64 bare metal server profiles.
L'autorité IAM doit définir les expressions d'utilisation autorisée
Vous devez disposer d'une ou de plusieurs des autorisations suivantes pour pouvoir définir des expressions d'utilisation autorisée, en fonction du type de ressource avec lequel vous travaillez.
is.image.image.manage-allowed-usepour les images personnalisées, les images gérées par un catalogue privé et les images provenant d'un volumeis.volume.volume.manage-allowed-usepour les volumes de démarrageis.snapshot.snapshot.manage-allowed-usepour les instantanés des volumes d'amorçage
Définir des expressions d'utilisation autorisée à l'aide de l'interface utilisateur
Lorsque vous créez une image à l'aide de l'interface utilisateur, vous pouvez ajouter les détails de l'expression d'utilisation autorisée dans la zone Advanced Options. Si vous visualisez une image existante, les détails de l'image
comprennent Virtual server expression et Bare metal server expression. Cliquez sur l'un de ces champs pour ouvrir la zone de texte de l'expression d'utilisation autorisée.
La section des expressions autorisées est une zone de texte dans laquelle vous pouvez ajouter les expressions décrites dans le tableau suivant. Voir les tableaux suivants pour les détails de l'expression d'utilisation autorisée pour les instances de serveurs virtuels et les serveurs métalliques nus.
| Expression d'usage autorisé | Variable d'expression | Type |
|---|---|---|
| Expression de serveur virtuel | gpu.countIndique le nombre de GPU affectés à l'instance de serveur virtuel. |
Entier |
|
|
gpu.manufacturerIndique le fabricant du GPU. |
Chaîne de caractères sensible à la casse |
|
|
gpu.memoryIndique la quantité totale de mémoire du GPU sur GiB. |
Entier |
|
|
gpu.modelIndique le modèle de GPU. |
Chaîne de caractères sensible à la casse |
|
|
enable_secure_bootIndique si le démarrage sécurisé est activé pour l'instance de serveur virtuel. |
Booléen |
| Expression d'usage autorisé | Variable d'expression | Type |
|---|---|---|
| Expression de serveur bare metal | enable_secure_bootIndique si le démarrage sécurisé est activé pour le serveur bare metal. |
Booléen |
L'exemple suivant est une expression d'utilisation autorisée pour une instance de serveur virtuel dont le nombre de GPU est supérieur à un et dont le fabricant de GPU est Nvidia. Le démarrage sécurisé est requis.
gpu.count > 1 && gpu.manufacturer == 'nvidia' && enable_secure_boot
Pour plus d'informations sur le langage d'expression commun, qui est utilisé pour créer l'expression d'utilisation autorisée, voir la référence de la définition du langage CEL à l'adresse Google
Définition d'expressions d'utilisation autorisée à l'aide de l'interface de programmation (CLI)
Voir les tableaux suivants pour les détails de l'expression d'utilisation autorisée pour les instances de serveurs virtuels et les serveurs métalliques nus.
| Option d'utilisation autorisée | Variable d'expression | Type |
|---|---|---|
--allowed-use-instance |
gpu.countIndique le nombre de GPU affectés à l'instance de serveur virtuel. |
Entier |
|
|
gpu.manufacturerIndique le fabricant du GPU. |
Chaîne de caractères sensible à la casse |
|
|
gpu.memoryIndique la quantité totale de mémoire du GPU sur GiB. |
Entier |
|
|
gpu.modelIndique le modèle de GPU. |
Chaîne de caractères sensible à la casse |
|
|
enable_secure_bootIndique si le démarrage sécurisé est activé pour l'instance de serveur virtuel. |
Booléen |
| Option d'utilisation autorisée | Variable d'expression | Type |
|---|---|---|
--allowed-use-bare-metal-server |
enable_secure_bootIndique si le démarrage sécurisé est activé pour le serveur bare metal. |
Booléen |
L'exemple de code suivant montre comment utiliser les options de l'expression d'utilisation autorisée lorsque vous créez une nouvelle image personnalisée à l'aide de l'interface de programmation. L'exemple configure l'image de manière à ce que l'activation du démarrage sécurisé soit requise pour un serveur bare metal et à ce qu'elle autorise la fourniture d'une instance de serveur virtuel.
ibmcloud is image-create my-ubuntu-20-amd64 --file cos://us-south/custom-image-vpc-bucket/customImage-0.qcow2 --os-name ubuntu-20-04-amd64 --allowed-use-bare-metal-server "enable_secure_boot==true" --allowed-use-instance true
L'exemple de code suivant montre comment utiliser les options de l'expression "allowed-use" lorsque vous mettez à jour une image personnalisée existante à l'aide de l'interface de programmation. L'exemple est la mise à jour d'une image pour exiger l'activation du démarrage sécurisé pour les dispositions d'un serveur bare metal et d'une instance de serveur virtuel.
ibmcloud is image-update r006-c9da1575-20cd-4412-9269-8ed08d3ac278 --allowed-use-bare-metal-server enable_secure_boot==true --allowed-use-instance enable_secure_boot==true
Pour plus d'informations sur les options et variables de l'expression d'utilisation autorisée de la CLI, voir la référence de la CLI VPC : Images. Pour plus d'informations sur le langage d'expression commun, qui est utilisé pour créer l'expression d'utilisation autorisée, voir la référence de la définition du langage CEL sur le site Google
Définition d'expressions d'utilisation autorisée à l'aide de l'API
Voir les tableaux suivants pour les détails de l'expression d'utilisation autorisée pour les instances de serveurs virtuels et les serveurs métalliques nus.
| Bien à usage autorisé | Sous-propriété à usage autorisé | Variable d'expression | Type |
|---|---|---|---|
allowed_use |
instance |
gpu.countIndique le nombre de GPU affectés à l'instance de serveur virtuel. |
Entier |
|
|
|
gpu.manufacturerIndique le fabricant du GPU. |
Chaîne de caractères sensible à la casse |
|
|
|
gpu.memoryIndique la quantité totale de mémoire du GPU sur GiB. |
Entier |
|
|
|
gpu.modelIndique le modèle de GPU. |
Chaîne de caractères sensible à la casse |
|
|
|
enable_secure_bootIndique si le démarrage sécurisé est activé pour l'instance de serveur virtuel. |
Booléen |
| Bien à usage autorisé | Sous-propriété à usage autorisé | Variable d'expression | Type |
|---|---|---|---|
allowed_use |
bare_metal_server |
enable_secure_bootIndique si le démarrage sécurisé est activé pour le serveur bare metal. |
Booléen |
Pour créer une nouvelle image personnalisée avec des expressions d'utilisation autorisée, utilisez la commande API POST /images. L'exemple suivant crée une nouvelle image personnalisée avec une expression d'utilisation autorisée
pour une instance de serveur virtuel dont le nombre de GPU est supérieur à un et dont le fabricant de GPU est Nvidia. Le démarrage sécurisé est requis. L'expression d'utilisation autorisée du serveur bare metal est définie sur false, ce qui
empêche l'image d'être utilisée pour approvisionner un serveur bare metal.
curl -X POST "$vpc_api_endpoint/v1/images?version=$today&generation=2" -H "Authorization: Bearer $iam_token" -d '{
"name": "my-image",
"file": {
"href": "cos://us-south/my-bucket/my-image.qcow2"
},
"operating_system": {
"name": "debian-9-amd64"
},
"allowed_use": {
"instance": "gpu.count > 1 && gpu.manufacturer == \"nvidia\" && enable_secure_boot",
"bare_metal_server": "false"
}
}'
Pour mettre à jour une image personnalisée existante avec une expression d'utilisation autorisée, utilisez la commande API PATCH /images. L'exemple suivant met à jour une image personnalisée existante avec une expression d'utilisation
autorisée pour une instance de serveur virtuel pour un nombre de GPU supérieur à un avec Nvidia comme fabricant de GPU. Le démarrage sécurisé est requis. L'expression d'utilisation autorisée du serveur bare metal est définie sur false, ce
qui empêche l'image d'être utilisée pour approvisionner un serveur bare metal.
curl -X PATCH "$vpc_api_endpoint/v1/images/$image_id?version=$today&generation=2" -H 'Content-Type: application/json' -H "Authorization: Bearer $iam_token" -d '{
"allowed_use": {
"instance": "gpu.count > 1 && gpu.manufacturer == \"nvidia\" && enable_secure_boot",
"bare_metal_server": "false"
}
}'
Pour plus de détails sur la propriété et les sous-propriétés de l'API allowed_use, voir l'API Virtual Private Cloud : Créer une image et Virtual Private Cloud API : Update image.
Pour plus d'informations sur le langage d'expression commun, qui est utilisé pour créer l'expression d'utilisation autorisée, voir la référence de la définition du langage CEL sur le site Google
Définir des expressions d'utilisation autorisée à l'aide de Terraform
Voir les tableaux suivants pour les détails de l'expression d'utilisation autorisée pour les instances de serveurs virtuels et les serveurs métalliques nus.
| Attribut d'utilisation autorisée | Sous-attribut d'utilisation autorisée | Variable d'expression | Type |
|---|---|---|---|
allowed_use |
instance |
gpu.countIndique le nombre de GPU affectés à l'instance de serveur virtuel. |
Entier |
|
|
|
gpu.manufacturerIndique le fabricant du GPU. |
Chaîne de caractères sensible à la casse |
|
|
|
gpu.memoryIndique la quantité totale de mémoire du GPU sur GiB. |
Entier |
|
|
|
gpu.modelIndique le modèle de GPU. |
Chaîne de caractères sensible à la casse |
|
|
|
enable_secure_bootIndique si le démarrage sécurisé est activé pour l'instance de serveur virtuel. |
Booléen |
| Attribut d'utilisation autorisée | Sous-attribut d'utilisation autorisée | Variable d'expression | Type |
|---|---|---|---|
allowed_use |
bare_metal_server |
enable_secure_bootIndique si le démarrage sécurisé est activé pour l'instance de serveur virtuel. |
Booléen |
Pour créer une nouvelle image personnalisée avec des expressions d'utilisation autorisée ou mettre à jour une image existante, mettez à jour la ressource ibm_is_image. L'exemple suivant crée une nouvelle image personnalisée avec
une expression d'utilisation autorisée pour une instance de serveur virtuel dont le nombre de GPU est supérieur à un et dont le fabricant de GPU est Nvidia. Le démarrage sécurisé est requis. L'expression d'utilisation autorisée du serveur
bare metal est définie sur false, ce qui empêche l'image d'être utilisée pour approvisionner un serveur bare metal.
resource "ibm_is_image" "example" {
name = "my-image"
href = "cos://us-south/buckettesttest/livecd.ubuntu-cpc.azure.vhd"
operating_system = "ubuntu-16-04-amd64"
allowed_use{
api_version = "2025-04-03"
bare_metal_server = “enable_secure_boot == true”
instance = “gpu.count > 0 && enable_secure_boot == true”
}
}
Pour plus d'informations sur le langage d'expression commun (Common Expression Language), qui est utilisé pour créer les expressions d'usage autorisé, voir Google 's CEL Language Definition reference</