Aggiunta di espressioni di uso consentito alle immagini personalizzate
Utilizzare un'espressione di uso consentito con l'immagine personalizzata per definire le capacità e le restrizioni di un'immagine e aiutare a trovare combinazioni di immagini e profili compatibili durante la creazione del server.
È possibile utilizzare le espressioni di uso consentito per configurare quali profili, immagini e impostazioni del server possono essere utilizzati insieme durante il provisioning di un'istanza di server virtuale o di un server bare metal. Quando si effettuano le selezioni per creare un'istanza di server virtuale o un server bare metal, se si utilizza un'immagine personalizzata con espressioni di uso consentito definite, è possibile determinare quali profili sono compatibili con tali espressioni.
Durante la creazione di un'istanza di server virtuale o di un server bare metal con immagini personalizzate che hanno un'espressione di utilizzo consentito, le informazioni fornite nelle proprietà di utilizzo consentito vengono valutate rispetto alle proprietà di una potenziale istanza di server virtuale o di un server bare metal per determinare se l'immagine personalizzata può essere utilizzata per creare l'istanza di server virtuale o il server bare metal.
Con l'interfaccia utente, la CLI e l'API, è possibile definire le espressioni di utilizzo consentito per qualsiasi immagine personalizzata, immagine da volume, volume di avvio staccato o istantanee di volumi di avvio. IBM Cloud® Virtual Private Cloud imposta le espressioni di utilizzo consentito per tutte le immagini stock, ma è possibile definirle per qualsiasi immagine personalizzata creata. Il valore predefinito è l'espressione allowed-use (uso consentito), che ha valore true e significa che l'immagine personalizzata può essere usata con tutte le potenziali disposizioni del server. È necessario definire o modificare le espressioni di uso consentito se non si desidera che l'immagine personalizzata venga utilizzata in situazioni specifiche.
Per le immagini personalizzate e le immagini condivise con un catalogo privato, è possibile definire le espressioni di utilizzo consentito durante la creazione dell'immagine in IBM Cloud VPC. Per le immagini dei volumi, i volumi di avvio staccati e le istantanee dei volumi di avvio, le espressioni di uso consentito sono ereditate dall'origine per impostazione predefinita. Tuttavia, è possibile sovrascrivere queste espressioni durante la creazione della risorsa. Per tutte le immagini, i volumi di avvio e le istantanee dei volumi di avvio, le espressioni di uso consentito possono essere aggiornate dopo la creazione.
Per ulteriori informazioni sui profili dei server virtuali di x86 e per ottenere le informazioni per definire le espressioni di uso consentito da utilizzare per l'immagine personalizzata, vedere x86-64 instance profiles. Per ulteriori informazioni sui profili di server bare metal x86-64, vedere x86-64 profili di server bare metal.
Autorità IAM necessaria per definire le espressioni di utilizzo consentito
Per poter definire le espressioni di uso consentito, è necessario disporre di una o più delle seguenti autorizzazioni, a seconda del tipo di risorsa con cui si lavora.
is.image.image.manage-allowed-useper le immagini personalizzate, le immagini gestite da un catalogo privato e le immagini da volumeis.volume.volume.manage-allowed-useper i volumi di avviois.snapshot.snapshot.manage-allowed-useper le istantanee dei volumi di avvio
Definizione delle espressioni di uso consentito tramite l'interfaccia utente
Quando si crea un'immagine tramite l'interfaccia utente, è possibile aggiungere i dettagli dell'espressione di utilizzo consentito nell'area Advanced Options. Se si sta visualizzando un'immagine esistente, i dettagli dell'immagine
includono Virtual server expression e Bare metal server expression. Fare clic su modifica di uno di questi campi per aprire la casella di testo dell'espressione di uso consentito.
La sezione Espressioni di uso consentito è una casella di testo in cui è possibile aggiungere le espressioni descritte nella tabella seguente. Per i dettagli sulle espressioni di uso consentito per le istanze di server virtuale e i server bare metal, vedere le tabelle seguenti.
| Espressione di uso consentito | Variabile di espressione | Immettere |
|---|---|---|
| Espressione del server virtuale | gpu.countIndica il numero di GPU assegnate all'istanza del server virtuale. |
Numero intero |
|
|
gpu.manufacturerIndica il produttore della GPU. |
Stringa sensibile alle maiuscole |
|
|
gpu.memoryIndica la quantità complessiva di memoria della GPU in GiB. |
Numero intero |
|
|
gpu.modelIndica il modello di GPU. |
Stringa sensibile alle maiuscole |
|
|
enable_secure_bootIndica se l'avvio sicuro è abilitato per l'istanza del server virtuale. |
Booleano |
| Espressione di uso consentito | Variabile di espressione | Immettere |
|---|---|---|
| Espressione di server bare metal | enable_secure_bootIndica se l'avvio sicuro è abilitato per il server bare metal. |
Booleano |
L'esempio seguente è un'espressione di uso consentito per un'istanza di server virtuale per un numero di GPU maggiore di uno con Nvidia come produttore di GPU. È necessario un avvio sicuro.
gpu.count > 1 && gpu.manufacturer == 'nvidia' && enable_secure_boot
Per ulteriori informazioni sul Common Expression Language, utilizzato per creare l'espressione di uso consentito, consultare il riferimento CEL Language Definition di Google
Definizione delle espressioni di uso consentito tramite la CLI
Per i dettagli sulle espressioni di uso consentito per le istanze di server virtuale e i server bare metal, vedere le tabelle seguenti.
| Opzione di utilizzo consentita | Variabile di espressione | Immettere |
|---|---|---|
--allowed-use-instance |
gpu.countIndica il numero di GPU assegnate all'istanza del server virtuale. |
Numero intero |
|
|
gpu.manufacturerIndica il produttore della GPU. |
Stringa sensibile alle maiuscole |
|
|
gpu.memoryIndica la quantità complessiva di memoria della GPU in GiB. |
Numero intero |
|
|
gpu.modelIndica il modello di GPU. |
Stringa sensibile alle maiuscole |
|
|
enable_secure_bootIndica se l'avvio sicuro è abilitato per l'istanza del server virtuale. |
Booleano |
| Opzione di utilizzo consentita | Variabile di espressione | Immettere |
|---|---|---|
--allowed-use-bare-metal-server |
enable_secure_bootIndica se l'avvio sicuro è abilitato per il server bare metal. |
Booleano |
Il seguente esempio di codice mostra come utilizzare le opzioni di espressione di uso consentito quando si crea una nuova immagine personalizzata utilizzando la CLI. L'esempio imposta l'immagine in modo che richieda l'abilitazione all'avvio sicuro per un server bare metal e che consenta la fornitura di un'istanza di server virtuale.
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
Il seguente esempio di codice mostra come utilizzare le opzioni di espressione di uso consentito quando si aggiorna un'immagine personalizzata esistente utilizzando la CLI. L'esempio è l'aggiornamento di un'immagine per richiedere l'abilitazione all'avvio sicuro per le disposizioni di un server bare metal e di un'istanza di server virtuale.
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
Per ulteriori informazioni sulle opzioni e sulle variabili dell'espressione di uso consentito della CLI, vedere il riferimento alla CLI VPC: Immagini. Per ulteriori informazioni sul Common Expression Language, utilizzato per creare l'espressione di uso consentito, consultare il riferimento CEL Language Definition di Google
Definire le espressioni di uso consentito utilizzando l'API
Per i dettagli sulle espressioni di uso consentito per le istanze di server virtuale e i server bare metal, vedere le tabelle seguenti.
| Proprietà di uso consentito | Sottoproprietà di uso consentito | Variabile di espressione | Immettere |
|---|---|---|---|
allowed_use |
instance |
gpu.countIndica il numero di GPU assegnate all'istanza del server virtuale. |
Numero intero |
|
|
|
gpu.manufacturerIndica il produttore della GPU. |
Stringa sensibile alle maiuscole |
|
|
|
gpu.memoryIndica la quantità complessiva di memoria della GPU in GiB. |
Numero intero |
|
|
|
gpu.modelIndica il modello di GPU. |
Stringa sensibile alle maiuscole |
|
|
|
enable_secure_bootIndica se l'avvio sicuro è abilitato per l'istanza del server virtuale. |
Booleano |
| Proprietà di uso consentito | Sottoproprietà di uso consentito | Variabile di espressione | Immettere |
|---|---|---|---|
allowed_use |
bare_metal_server |
enable_secure_bootIndica se l'avvio sicuro è abilitato per il server bare metal. |
Booleano |
Per creare una nuova immagine personalizzata con espressioni di uso consentito, usare il comando POST /images API. L'esempio seguente crea una nuova immagine personalizzata con un'espressione di uso consentito per un'istanza di
server virtuale con un numero di GPU maggiore di uno e Nvidia come produttore di GPU. È necessario un avvio sicuro. L'espressione "bare metal server allowed-use" è impostata su false, il che impedisce di usare l'immagine per il provisioning
di un server 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"
}
}'
Per aggiornare un'immagine personalizzata esistente con un'espressione di uso consentito, usare il comando PATCH /images API. L'esempio seguente aggiorna un'immagine personalizzata esistente con un'espressione di uso consentito
per un'istanza di server virtuale per un numero di GPU maggiore di uno con Nvidia come produttore di GPU. È necessario un avvio sicuro. L'espressione "bare metal server allowed-use" è impostata su false, il che impedisce di usare
l'immagine per il provisioning di un server 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"
}
}'
Per maggiori dettagli sulla proprietà e sulle sottoproprietà dell'API allowed_use, vedere Virtual Private Cloud API: Crea immagine e Virtual Private Cloud API: Aggiorna immagine.
Per ulteriori informazioni sul Common Expression Language, utilizzato per creare l'espressione di uso consentito, consultare il riferimento CEL Language Definition di Google
Definire le espressioni di uso consentito utilizzando Terraform
Per i dettagli sulle espressioni di uso consentito per le istanze di server virtuale e i server bare metal, vedere le tabelle seguenti.
| Attributo "uso consentito | Sottoattributo di uso consentito | Variabile di espressione | Immettere |
|---|---|---|---|
allowed_use |
instance |
gpu.countIndica il numero di GPU assegnate all'istanza del server virtuale. |
Numero intero |
|
|
|
gpu.manufacturerIndica il produttore della GPU. |
Stringa sensibile alle maiuscole |
|
|
|
gpu.memoryIndica la quantità complessiva di memoria della GPU in GiB. |
Numero intero |
|
|
|
gpu.modelIndica il modello di GPU. |
Stringa sensibile alle maiuscole |
|
|
|
enable_secure_bootIndica se l'avvio sicuro è abilitato per l'istanza del server virtuale. |
Booleano |
| Attributo "uso consentito | Sottoattributo di uso consentito | Variabile di espressione | Immettere |
|---|---|---|---|
allowed_use |
bare_metal_server |
enable_secure_bootIndica se l'avvio sicuro è abilitato per l'istanza del server virtuale. |
Booleano |
Per creare una nuova immagine personalizzata con espressioni di uso consentito o aggiornare un'immagine esistente, aggiornare la risorsa ibm_is_image. L'esempio seguente crea una nuova immagine personalizzata con un'espressione
di uso consentito per un'istanza di server virtuale con un numero di GPU maggiore di uno e Nvidia come produttore di GPU. È necessario un avvio sicuro. L'espressione "bare metal server allowed-use" è impostata su false, il che impedisce
di usare l'immagine per il provisioning di un server 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”
}
}
Per ulteriori informazioni sul Common Expression Language, che viene utilizzato per creare le espressioni di uso consentito, vedere il riferimento CEL Language Definition di Google </