Adição de expressões de uso permitido a imagens personalizadas

Use uma expressão de uso permitido com sua imagem personalizada para definir os recursos e as restrições de uma imagem e ajudá-lo a encontrar combinações compatíveis de imagem e perfil durante a criação do servidor.

Você pode usar expressões de uso permitido para definir quais perfis, imagens e configurações de servidor podem ser usados juntos quando você provisiona uma instância de servidor virtual ou um servidor bare metal. Ao fazer seleções para criar uma instância de servidor virtual ou um servidor bare metal, se você usar uma imagem personalizada com expressões de uso permitido definidas, poderá determinar quais perfis são compatíveis com essas expressões.

Durante a criação de uma instância de servidor virtual ou de um servidor bare metal com imagens personalizadas que têm uma expressão de uso permitido, as informações fornecidas nas propriedades de uso permitido são avaliadas em relação a uma possível instância de servidor virtual ou propriedades de servidor bare metal para determinar se essa imagem personalizada pode ser usada para criar a instância de servidor virtual ou o servidor bare metal.

Com a interface do usuário, a CLI e a API, você pode definir expressões de uso permitido para qualquer imagem personalizada, imagem de volume, volume de inicialização desanexado ou instantâneos de volumes de inicialização. O site IBM Cloud® Virtual Private Cloud define as expressões de uso permitido para todas as imagens de estoque, mas você pode defini-las para qualquer imagem personalizada criada. O valor padrão é que as expressões de uso permitido sejam avaliadas como true, o que significa que a imagem personalizada pode ser usada com todas as provisões de servidor em potencial. Você deve definir ou editar as expressões de uso permitido se não quiser que a imagem personalizada seja usada em situações específicas.

Para imagens personalizadas e imagens compartilhadas com um catálogo privado, você pode definir as expressões de uso permitido ao criar a imagem em IBM Cloud VPC. Para imagens de volumes, volumes de inicialização desconectados e instantâneos de volumes de inicialização, as expressões de uso permitido são herdadas da origem por padrão. No entanto, você pode substituir essas expressões ao criar o recurso. Para todas as imagens, volumes de inicialização e instantâneos de volumes de inicialização, as expressões de uso permitido podem ser atualizadas após a criação.

Para obter mais informações sobre os perfis de servidor virtual x86 e para obter as informações para definir as expressões de uso permitido que você deseja usar para sua imagem personalizada, consulte x86-64 instance profiles. Para obter mais informações sobre os perfis de servidor bare metal x86-64, consulte x86-64 bare metal server profiles.

Autoridade de IAM necessária para definir expressões de uso permitido

Você deve ter uma ou mais das seguintes autorizações para poder definir expressões de uso permitido, dependendo do tipo de recurso com o qual está trabalhando.

  • is.image.image.manage-allowed-use para imagens personalizadas, imagens que são gerenciadas por um catálogo privado e imagens de volume
  • is.volume.volume.manage-allowed-use para volumes de inicialização
  • is.snapshot.snapshot.manage-allowed-use para snapshots de volumes de inicialização

Definição de expressões de uso permitido usando a interface do usuário

Quando estiver criando uma imagem usando a interface do usuário, você poderá adicionar os detalhes da expressão de uso permitido na área Advanced Options. Se estiver visualizando uma imagem existente, os detalhes da imagem incluem Virtual server expression e Bare metal server expression. Clique em editar em um desses campos para abrir a caixa de texto da expressão de uso permitido.

A seção de expressões de uso permitido é uma caixa de texto na qual é possível adicionar as expressões conforme detalhado na tabela a seguir. Consulte as tabelas a seguir para obter detalhes sobre a expressão de uso permitido para instâncias de servidores virtuais e servidores bare metal.

Expressões de uso permitido da interface do usuário da instância do servidor virtual
Opções de expressão de uso permitido na interface do usuário da instância do servidor virtual
Expressão de uso permitido Variável de expressão Tipo
Expressão de servidor virtual gpu.count
Indica o número de GPUs atribuídas à instância do servidor virtual.
Integer
gpu.manufacturer
Indica o fabricante da GPU.
Cadeia de caracteres que diferencia maiúsculas de minúsculas
gpu.memory
Indica a quantidade total de memória da GPU em GiB.
Integer
gpu.model
Indica o modelo da GPU.
Cadeia de caracteres que diferencia maiúsculas de minúsculas
enable_secure_boot
Indica se a inicialização segura está ativada para a instância do servidor virtual.
Booleano
Expressões de uso permitido da UI do servidor bare metal
Opções de expressões permitidas na interface do usuário do servidor bare metal
Expressão de uso permitido Variável de expressão Tipo
Expressão do servidor bare metal enable_secure_boot
Indica se a inicialização segura está ativada para o servidor bare metal.
Booleano

O exemplo a seguir é uma expressão de uso permitido para uma instância de servidor virtual para contagem de GPU maior que um com a Nvidia como fabricante da GPU. A inicialização segura é necessária.

gpu.count > 1 && gpu.manufacturer == 'nvidia' && enable_secure_boot

Para obter mais informações sobre a Common Expression Language, que é usada para criar a expressão de uso permitido, consulte a referência CEL Language Definition do site Google

Definição de expressões de uso permitido usando a CLI

Consulte as tabelas a seguir para obter detalhes sobre a expressão de uso permitido para instâncias de servidores virtuais e servidores bare metal.

Expressões de uso permitido da CLI da instância do servidor virtual
Opções de expressão de uso permitido na CLI da instância de servidor virtual
Opção de uso permitido Variável de expressão Tipo
--allowed-use-instance gpu.count
Indica o número de GPUs atribuídas à instância do servidor virtual.
Integer
gpu.manufacturer
Indica o fabricante da GPU.
Cadeia de caracteres que diferencia maiúsculas de minúsculas
gpu.memory
Indica a quantidade total de memória da GPU em GiB.
Integer
gpu.model
Indica o modelo da GPU.
Cadeia de caracteres que diferencia maiúsculas de minúsculas
enable_secure_boot
Indica se a inicialização segura está ativada para a instância do servidor virtual.
Booleano
Expressões de uso permitido da CLI do servidor bare metal
Opções de expressão de uso permitido na CLI do servidor bare metal
Opção de uso permitido Variável de expressão Tipo
--allowed-use-bare-metal-server enable_secure_boot
Indica se a inicialização segura está ativada para o servidor bare metal.
Booleano

O exemplo de código a seguir mostra como usar as opções de expressão de uso permitido quando você cria uma nova imagem personalizada usando a CLI. O exemplo configura a imagem para exigir a habilitação de inicialização segura para um servidor bare metal e para permitir qualquer fornecimento de uma instância 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

O exemplo de código a seguir mostra como usar as opções da expressão allowed-use quando você atualiza uma imagem personalizada existente usando a CLI. O exemplo é a atualização de uma imagem para exigir a habilitação de inicialização segura para provisões de um servidor bare metal e de uma instância 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 obter mais informações sobre as opções e variáveis da expressão de uso permitido da CLI, consulte a referência da CLI do VPC: Imagens. Para obter mais informações sobre a Common Expression Language, que é usada para criar a expressão de uso permitido, consulte a referência CEL Language Definition do site Google

Definição de expressões de uso permitido usando a API

Consulte as tabelas a seguir para obter detalhes sobre a expressão de uso permitido para instâncias de servidores virtuais e servidores bare metal.

Expressões de uso permitido da API de instância de servidor virtual
Opções de expressão de uso permitido da API de instâncias de servidor virtual
Propriedade de uso permitido Subpropriedade de uso permitido Variável de expressão Tipo
allowed_use instance gpu.count
Indica o número de GPUs atribuídas à instância do servidor virtual.
Integer
gpu.manufacturer
Indica o fabricante da GPU.
Cadeia de caracteres que diferencia maiúsculas de minúsculas
gpu.memory
Indica a quantidade total de memória da GPU em GiB.
Integer
gpu.model
Indica o modelo da GPU.
Cadeia de caracteres que diferencia maiúsculas de minúsculas
enable_secure_boot
Indica se a inicialização segura está ativada para a instância do servidor virtual.
Booleano
Expressões de uso permitido da API do servidor bare metal
Opções de expressão de uso permitido da API do servidor bare metal
Propriedade de uso permitido Subpropriedade de uso permitido Variável de expressão Tipo
allowed_use bare_metal_server enable_secure_boot
Indica se a inicialização segura está ativada para o servidor bare metal.
Booleano

Para criar uma nova imagem personalizada com expressões de uso permitido, use o comando da API POST /images. O exemplo a seguir cria uma nova imagem personalizada com uma expressão de uso permitido para uma instância de servidor virtual para contagem de GPU maior que um com a Nvidia como fabricante da GPU. A inicialização segura é necessária. A expressão bare metal server allowed-use é definida como false, o que impede que a imagem seja usada para provisionar um servidor 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"
      }
    }'

Para atualizar uma imagem personalizada existente com uma expressão de uso permitido, use o comando da API PATCH /images. O exemplo a seguir atualiza uma imagem personalizada existente com uma expressão de uso permitido para uma instância de servidor virtual para contagem de GPU maior que um com a Nvidia como fabricante da GPU. A inicialização segura é necessária. A expressão bare metal server allowed-use é definida como false, o que impede que a imagem seja usada para provisionar um servidor 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"
  }
}'

Para obter mais detalhes sobre a propriedade e as subpropriedades da API allowed_use, consulte a API do Virtual Private Cloud: Criar imagem e API de nuvem privada virtual: Atualizar imagem. Para obter mais informações sobre a Common Expression Language, que é usada para criar a expressão de uso permitido, consulte a referência CEL Language Definition do site Google

Definição de expressões de uso permitido usando o Terraform

Consulte as tabelas a seguir para obter detalhes sobre a expressão de uso permitido para instâncias de servidores virtuais e servidores bare metal.

Expressões de uso permitido da instância de servidor virtual do Terraform
Opções de expressão de uso permitido do Terraform para instâncias de servidor virtual
Atributo de uso permitido Subatributo de uso permitido Variável de expressão Tipo
allowed_use instance gpu.count
Indica o número de GPUs atribuídas à instância do servidor virtual.
Integer
gpu.manufacturer
Indica o fabricante da GPU.
Cadeia de caracteres que diferencia maiúsculas de minúsculas
gpu.memory
Indica a quantidade total de memória da GPU em GiB.
Integer
gpu.model
Indica o modelo da GPU.
Cadeia de caracteres que diferencia maiúsculas de minúsculas
enable_secure_boot
Indica se a inicialização segura está ativada para a instância do servidor virtual.
Booleano
Servidor bare metal Expressões de uso permitido do Terraform
Opções de expressão de uso permitido do Terraform para servidores bare metal
Atributo de uso permitido Subatributo de uso permitido Variável de expressão Tipo
allowed_use bare_metal_server enable_secure_boot
Indica se a inicialização segura está ativada para a instância do servidor virtual.
Booleano

Para criar uma nova imagem personalizada com expressões de uso permitido ou atualizar uma imagem existente, atualize o recurso ibm_is_image. O exemplo a seguir cria uma nova imagem personalizada com uma expressão de uso permitido para uma instância de servidor virtual para contagem de GPU maior que um com a Nvidia como fabricante da GPU. A inicialização segura é necessária. A expressão bare metal server allowed-use é definida como false, o que impede que a imagem seja usada para provisionar um servidor 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”
  }
}

Para obter mais informações sobre a Common Expression Language, que é usada para criar as expressões de uso permitido, consulte Google 's CEL Language Definition reference</