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-usepara imagens personalizadas, imagens que são gerenciadas por um catálogo privado e imagens de volumeis.volume.volume.manage-allowed-usepara volumes de inicializaçãois.snapshot.snapshot.manage-allowed-usepara 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ão de uso permitido | Variável de expressão | Tipo |
|---|---|---|
| Expressão de servidor virtual | gpu.countIndica o número de GPUs atribuídas à instância do servidor virtual. |
Integer |
|
|
gpu.manufacturerIndica o fabricante da GPU. |
Cadeia de caracteres que diferencia maiúsculas de minúsculas |
|
|
gpu.memoryIndica a quantidade total de memória da GPU em GiB. |
Integer |
|
|
gpu.modelIndica o modelo da GPU. |
Cadeia de caracteres que diferencia maiúsculas de minúsculas |
|
|
enable_secure_bootIndica se a inicialização segura está ativada para a instância do servidor virtual. |
Booleano |
| Expressão de uso permitido | Variável de expressão | Tipo |
|---|---|---|
| Expressão do servidor bare metal | enable_secure_bootIndica 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.
| Opção de uso permitido | Variável de expressão | Tipo |
|---|---|---|
--allowed-use-instance |
gpu.countIndica o número de GPUs atribuídas à instância do servidor virtual. |
Integer |
|
|
gpu.manufacturerIndica o fabricante da GPU. |
Cadeia de caracteres que diferencia maiúsculas de minúsculas |
|
|
gpu.memoryIndica a quantidade total de memória da GPU em GiB. |
Integer |
|
|
gpu.modelIndica o modelo da GPU. |
Cadeia de caracteres que diferencia maiúsculas de minúsculas |
|
|
enable_secure_bootIndica se a inicialização segura está ativada para a instância do servidor virtual. |
Booleano |
| Opção de uso permitido | Variável de expressão | Tipo |
|---|---|---|
--allowed-use-bare-metal-server |
enable_secure_bootIndica 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.
| Propriedade de uso permitido | Subpropriedade de uso permitido | Variável de expressão | Tipo |
|---|---|---|---|
allowed_use |
instance |
gpu.countIndica o número de GPUs atribuídas à instância do servidor virtual. |
Integer |
|
|
|
gpu.manufacturerIndica o fabricante da GPU. |
Cadeia de caracteres que diferencia maiúsculas de minúsculas |
|
|
|
gpu.memoryIndica a quantidade total de memória da GPU em GiB. |
Integer |
|
|
|
gpu.modelIndica o modelo da GPU. |
Cadeia de caracteres que diferencia maiúsculas de minúsculas |
|
|
|
enable_secure_bootIndica se a inicialização segura está ativada para a instância do servidor virtual. |
Booleano |
| Propriedade de uso permitido | Subpropriedade de uso permitido | Variável de expressão | Tipo |
|---|---|---|---|
allowed_use |
bare_metal_server |
enable_secure_bootIndica 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.
| Atributo de uso permitido | Subatributo de uso permitido | Variável de expressão | Tipo |
|---|---|---|---|
allowed_use |
instance |
gpu.countIndica o número de GPUs atribuídas à instância do servidor virtual. |
Integer |
|
|
|
gpu.manufacturerIndica o fabricante da GPU. |
Cadeia de caracteres que diferencia maiúsculas de minúsculas |
|
|
|
gpu.memoryIndica a quantidade total de memória da GPU em GiB. |
Integer |
|
|
|
gpu.modelIndica o modelo da GPU. |
Cadeia de caracteres que diferencia maiúsculas de minúsculas |
|
|
|
enable_secure_bootIndica se a inicialização segura está ativada para a instância do servidor virtual. |
Booleano |
| Atributo de uso permitido | Subatributo de uso permitido | Variável de expressão | Tipo |
|---|---|---|---|
allowed_use |
bare_metal_server |
enable_secure_bootIndica 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</