Añadir expresiones de uso permitido a imágenes personalizadas
Utilice una expresión de uso permitido con su imagen personalizada para definir las capacidades y restricciones de una imagen y ayudarle a encontrar combinaciones compatibles de imagen y perfil durante la creación del servidor.
Puede utilizar expresiones de uso permitido para configurar qué perfiles, imágenes y configuraciones de servidor pueden utilizarse conjuntamente cuando aprovisiona una instancia de servidor virtual o un servidor bare metal. Cuando realice selecciones para crear una instancia de servidor virtual o un servidor bare metal, si utiliza una imagen personalizada con expresiones de uso permitido definidas, podrá determinar qué perfiles son compatibles con dichas expresiones.
Durante la creación de una instancia de servidor virtual o un servidor de metal desnudo con imágenes personalizadas que tienen una expresión de uso permitido, la información que se proporciona en las propiedades de uso permitido se evalúa contra una posible instancia de servidor virtual o propiedades de servidor de metal desnudo para determinar si esa imagen personalizada se puede utilizar para crear la instancia de servidor virtual o servidor de metal desnudo.
Con la interfaz de usuario, la CLI y la API, puede definir expresiones de uso permitido para cualquier imagen personalizada, imagen de volumen, volumen de arranque separado o instantáneas de volúmenes de arranque. IBM Cloud® Virtual Private Cloud establece las expresiones de uso permitido para todas las imágenes de stock, pero puede definirlas para cualquier imagen personalizada que haya creado. El valor predeterminado es el uso permitido expresiones evalúa a verdadero, lo que significa que la imagen personalizada se le permite ser utilizado con todas las disposiciones del servidor potencial. Debe definir o editar las expresiones de uso permitido si no desea que la imagen personalizada se utilice en situaciones específicas.
Para las imágenes personalizadas y las imágenes compartidas con un catálogo privado, puede definir las expresiones de uso permitido al crear la imagen en IBM Cloud VPC. Para imágenes de volúmenes, volúmenes de arranque desacoplados e instantáneas de volúmenes de arranque, las expresiones de uso permitido se heredan del origen por defecto. Sin embargo, puede anular estas expresiones al crear el recurso. Para todas las imágenes, volúmenes de arranque e instantáneas de volúmenes de arranque, las expresiones de uso permitido pueden actualizarse después de la creación.
Para obtener más información sobre los perfiles de servidor virtual de x86 y obtener la información para definir las expresiones de uso permitido que desea utilizar para su imagen personalizada, consulte x86-64 perfiles de instancia. Para obtener más información sobre los perfiles de servidor x86-64 bare metal, consulte Perfiles de servidor x86-64 bare metal.
Autoridad IAM necesaria para definir expresiones de uso permitido
Debe tener una o más de las siguientes autorizaciones para poder definir expresiones de uso permitido, dependiendo del tipo de recurso con el que esté trabajando.
is.image.image.manage-allowed-usepara imágenes personalizadas, imágenes gestionadas por un catálogo privado e imágenes de volumenis.volume.volume.manage-allowed-usepara volúmenes de arranqueis.snapshot.snapshot.manage-allowed-usepara instantáneas de volúmenes de arranque
Definición de expresiones de uso permitido mediante la interfaz de usuario
Al crear una imagen mediante la interfaz de usuario, puede añadir los detalles de la expresión de uso permitido en el área Advanced Options. Si está viendo una imagen existente, los detalles de la imagen incluyen Virtual server expression y Bare metal server expression. Haga clic en Editar en uno de estos campos para abrir el cuadro de texto de la expresión de uso permitido.
La sección de expresiones de uso permitido es un cuadro de texto en el que puede añadir las expresiones que se detallan en la tabla siguiente. Consulte las siguientes tablas para conocer los detalles de las expresiones de uso permitido para instancias de servidor virtual y servidores bare metal.
| Expresión de uso permitido | Variable de expresión | Tipo |
|---|---|---|
| Expresión de servidor virtual | gpu.countIndica el número de GPUs asignadas a la instancia de servidor virtual. |
Entero |
|
|
gpu.manufacturerIndica el fabricante de la GPU. |
Cadena que distingue mayúsculas de minúsculas |
|
|
gpu.memoryIndica la cantidad total de memoria de la GPU en GiB. |
Entero |
|
|
gpu.modelIndica el modelo de GPU. |
Cadena que distingue mayúsculas de minúsculas |
|
|
enable_secure_bootIndica si el arranque seguro está activado para la instancia del servidor virtual. |
Boolean |
| Expresión de uso permitido | Variable de expresión | Tipo |
|---|---|---|
| Expresión de servidor nativo | enable_secure_bootIndica si el arranque seguro está habilitado para el servidor bare metal. |
Boolean |
El siguiente ejemplo es una expresión de uso permitido para una instancia de servidor virtual para un recuento de GPU mayor que uno con Nvidia como fabricante de GPU. Se requiere arranque seguro.
gpu.count > 1 && gpu.manufacturer == 'nvidia' && enable_secure_boot
Para obtener más información sobre Common Expression Language, que se utiliza para crear la expresión de uso permitido, consulte Google 's CEL Language Definition reference
Definición de expresiones de uso permitido mediante la CLI
Consulte las siguientes tablas para conocer los detalles de las expresiones de uso permitido para instancias de servidor virtual y servidores bare metal.
| Opción de uso permitido | Variable de expresión | Tipo |
|---|---|---|
--allowed-use-instance |
gpu.countIndica el número de GPUs asignadas a la instancia de servidor virtual. |
Entero |
|
|
gpu.manufacturerIndica el fabricante de la GPU. |
Cadena que distingue mayúsculas de minúsculas |
|
|
gpu.memoryIndica la cantidad total de memoria de la GPU en GiB. |
Entero |
|
|
gpu.modelIndica el modelo de GPU. |
Cadena que distingue mayúsculas de minúsculas |
|
|
enable_secure_bootIndica si el arranque seguro está activado para la instancia del servidor virtual. |
Boolean |
| Opción de uso permitido | Variable de expresión | Tipo |
|---|---|---|
--allowed-use-bare-metal-server |
enable_secure_bootIndica si el arranque seguro está habilitado para el servidor bare metal. |
Boolean |
El siguiente ejemplo de código muestra cómo utilizar las opciones de expresión de uso permitido al crear una nueva imagen personalizada mediante la CLI. El ejemplo configura la imagen para requerir la habilitación de arranque seguro para un servidor bare metal, y para permitir cualquier provisión de una instancia de servidor virtual.
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
El siguiente ejemplo de código muestra cómo utilizar las opciones de expresión de uso permitido al actualizar una imagen personalizada existente mediante la CLI. El ejemplo es la actualización de una imagen para requerir la habilitación de arranque seguro para las provisiones tanto de un servidor bare metal como de una instancia de servidor virtual.
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
Para obtener más información sobre las opciones y variables de la expresión de uso permitido de la CLI, consulte la referencia de la CLI de VPC: Imágenes. Para obtener más información sobre Common Expression Language, que se utiliza para crear la expresión de uso permitido, consulte Google 's CEL Language Definition reference
Definición de expresiones de uso permitido mediante la API
Consulte las siguientes tablas para conocer los detalles de las expresiones de uso permitido para instancias de servidor virtual y servidores bare metal.
| Propiedad de uso permitido | Subpropiedad de uso permitido | Variable de expresión | Tipo |
|---|---|---|---|
allowed_use |
instance |
gpu.countIndica el número de GPUs asignadas a la instancia de servidor virtual. |
Entero |
|
|
|
gpu.manufacturerIndica el fabricante de la GPU. |
Cadena que distingue mayúsculas de minúsculas |
|
|
|
gpu.memoryIndica la cantidad total de memoria de la GPU en GiB. |
Entero |
|
|
|
gpu.modelIndica el modelo de GPU. |
Cadena que distingue mayúsculas de minúsculas |
|
|
|
enable_secure_bootIndica si el arranque seguro está activado para la instancia del servidor virtual. |
Boolean |
| Propiedad de uso permitido | Subpropiedad de uso permitido | Variable de expresión | Tipo |
|---|---|---|---|
allowed_use |
bare_metal_server |
enable_secure_bootIndica si el arranque seguro está habilitado para el servidor bare metal. |
Boolean |
Para crear una nueva imagen personalizada con expresiones de uso permitido, utilice el comando la API POST /images. El siguiente ejemplo crea una nueva imagen personalizada con una expresión de uso permitido para una instancia de
servidor virtual para un recuento de GPU superior a uno con Nvidia como fabricante de GPU. Se requiere arranque seguro. La expresión de uso permitido del servidor de metal desnudo se establece en false, lo que impide que la imagen se utilice
para aprovisionar un servidor de metal desnudo.
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"
}
}'
Para actualizar una imagen personalizada existente con una expresión de uso permitido, utilice el comando de la API PATCH /images. El siguiente ejemplo actualiza una imagen personalizada existente con una expresión de uso permitido
para una instancia de servidor virtual para un recuento de GPU superior a uno con Nvidia como fabricante de GPU. Se requiere arranque seguro. La expresión de uso permitido del servidor de metal desnudo se establece en false, lo que impide
que la imagen se utilice para aprovisionar un servidor de metal desnudo.
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"
}
}'
Para más detalles sobre la propiedad y subpropiedades de la API allowed_use, consulte la API de Virtual Private Cloud: Crear imagen y API de la Nube Virtual: Actualizar imagen.
Para obtener más información sobre Common Expression Language, que se utiliza para crear la expresión de uso permitido, consulte Google 's CEL Language Definition reference
Definición de expresiones de uso permitido mediante Terraform
Consulte las siguientes tablas para conocer los detalles de las expresiones de uso permitido para instancias de servidor virtual y servidores bare metal.
| Atributo de uso permitido | Subatributo de uso permitido | Variable de expresión | Tipo |
|---|---|---|---|
allowed_use |
instance |
gpu.countIndica el número de GPUs asignadas a la instancia de servidor virtual. |
Entero |
|
|
|
gpu.manufacturerIndica el fabricante de la GPU. |
Cadena que distingue mayúsculas de minúsculas |
|
|
|
gpu.memoryIndica la cantidad total de memoria de la GPU en GiB. |
Entero |
|
|
|
gpu.modelIndica el modelo de GPU. |
Cadena que distingue mayúsculas de minúsculas |
|
|
|
enable_secure_bootIndica si el arranque seguro está activado para la instancia del servidor virtual. |
Boolean |
| Atributo de uso permitido | Subatributo de uso permitido | Variable de expresión | Tipo |
|---|---|---|---|
allowed_use |
bare_metal_server |
enable_secure_bootIndica si el arranque seguro está activado para la instancia del servidor virtual. |
Boolean |
Para crear una nueva imagen personalizada con expresiones de uso permitido o actualizar una imagen existente, actualice el recurso ibm_is_image. El siguiente ejemplo crea una nueva imagen personalizada con una expresión de uso permitido
para una instancia de servidor virtual para un recuento de GPU superior a uno con Nvidia como fabricante de GPU. Se requiere arranque seguro. La expresión de uso permitido del servidor de metal desnudo se establece en false, lo que impide
que la imagen se utilice para aprovisionar un servidor de metal desnudo.
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”
}
}
Para obtener más información sobre Common Expression Language, que se utiliza para crear las expresiones de uso permitido, consulte Google 's CEL Language Definition reference</