Considerazioni VPC quando si utilizzano immagini personalizzate in un catalogo privato
Se intendi condividere o pubblicare un'immagine personalizzata in altri account all'interno della tua azienda, devi creare un catalogo privato. Un catalogo privato ti consente di gestire l'accesso ai prodotti per più account, purché tali account facciano parte della stessa azienda. È possibile condividere qualsiasi immagine personalizzata esistente del server virtuale x86 con un catalogo privato, ad eccezione delle immagini crittografate.
Nella console, puoi trovare immagini personalizzate in un catalogo privato cliccando sull'icona " Menu di navigazione " > Infrastrutture
> Elaborazione > Immagini > Catalogo immagini.
Per ulteriori informazioni sui cataloghi privati, consulta l'esercitazione Onboarding di un'immagine del server virtuale per VPC.
Le immagini personalizzate possono essere anche pubblicate nel catalogo IBM Cloud® e in altri account (non aziendali). Questo processo richiede l'onboarding nel Centro partnerIBM Cloud®.
Prerequisiti e limitazioni
Prima di poter importare una immagine personalizzata in un catalogo privato, è necessario completare i seguenti articoli.
- Crea un catalogo privato
- Crea e importa l'immagine personalizzata in IBM Cloud VPC
Le immagini personalizzate in un catalogo privato hanno le seguenti limitazioni:
- Deve essere un'immagine x86
- Non può essere crittografato
- Non può essere utilizzato con un profilo bare metal
- Può esistere solo in una versione di un'offerta del prodotto del catalogo in un catalogo privato alla volta
- Deve essere nello stato
available
Utilizzo dei riferimenti alle immagini di più account in un catalogo privato nella console
Le istanze di cui esegui il provisioning appartengono al tuo account. Le immagini condivise con il tuo account tramite un catalogo privato potrebbero appartenere ad altri account. Quando esegui il provisioning di un'istanza da un'immagine che appartiene a un altro account o da un modello di istanza che specifica tale immagine, l'immagine appartiene ancora all'altro account anche se l'istanza appartiene al tuo account. Un riferimento a tale immagine potrebbe esistere nei dettagli dell'istanza e delle relative risorse. Ad esempio, i dettagli relativi al volume di avvio e a qualsiasi istantanea creata da tale volume di avvio potrebbero fare riferimento a tale immagine. Indipendentemente dalle tue autorizzazioni, non puoi accedere all'immagine a cui fa riferimento tramite il relativo ID o CRN e i tentativi non riescono come se l'immagine non esista.
Inoltre, è possibile che l'immagine a cui si fa riferimento abbia lo stesso nome di un'immagine personalizzata nel tuo account. Ma questi nomi di immagini sono per due immagini diverse in due account diversi. L'ID e il CRN identificano ciascuno in modo univoco un'immagine in IBM Cloud®. Per evitare il possibile richiamo o l'utilizzo dell'immagine errata, quando si taglia e si incolla l'identità di un'immagine all'esterno dell'IU, utilizzare il suo ID o CRN, piuttosto che il nome.
Utilizzo dei riferimenti di immagine cross - account in un catalogo privato nella CLI
Le istanze di cui esegui il provisioning appartengono al tuo account. Le immagini condivise con il tuo account tramite un catalogo privato potrebbero appartenere ad altri account. Quando esegui il provisioning di un'istanza da un'immagine che appartiene a un altro account o da un modello di istanza che specifica tale immagine, l'immagine appartiene ancora all'altro account anche se l'istanza appartiene al tuo account. Un riferimento a tale immagine potrebbe esistere nei dettagli dell'istanza e delle relative risorse. Ad esempio, i dettagli relativi al volume di avvio e a qualsiasi istantanea creata da tale volume di avvio potrebbero fare riferimento a tale immagine. Indipendentemente dalle tue autorizzazioni, non puoi accedere a questo tipo di immagine personalizzata in base al suo ID e i tentativi non riescono come se l'immagine non esistesse.
I riferimenti di immagine vengono utilizzati in alcune posizioni differenti nella CLI. Ad esempio, se si utilizza il comando ibmcloud is instance per richiamare i dati di istanza, viene visualizzato quanto segue all'interno dell'output.
Image ID Name
r006-6cab2dbd-4e57-4dc5-810b-b7366cb78999 test-image
Se si tenta di richiamare le informazioni relative a questa immagine utilizzando il relativo ID,
ibmcloud is image r006-6cab2dbd-4e57-4dc5-810b-b7366cb78999
quindi questo tentativo ha esito negativo con un errore come il seguente esempio:
FAILED
Response HTTP Status Code: 404
Error code: not_found
Error message: The requested resource does not exist, or cannot be accessed.
Error target name: id, type: parameter
Trace ID: d8b4d382-2993-4a89-a371-1db991b510d8
Questo errore indica che l'immagine non è presente nel tuo account. Se il provisioning dell'istanza è stato eseguito utilizzando un'immagine di catalogo condivisa in un altro account, questo output è l'output che vedi sempre anche se l'immagine esiste nell'account proprietario.
Inoltre, è possibile che l'immagine a cui si fa riferimento abbia lo stesso nome di un'immagine personalizzata nel tuo account. Ma questi nomi di immagini sono per due immagini diverse in due account diversi. Mentre la CLI utilizza sia ID che Nome per identificare un'immagine, solo l'ID identifica univocamente un'immagine in IBM Cloud®.
Verifica che la tua automazione basata su CLI gestisca correttamente gli errori di ricerca dei riferimenti delle immagini e non presumere che le immagini inaccessibili siano state eliminate, anche se vengono eseguite con l'accesso completo alle tue immagini. Per evitare il possibile richiamo o l'utilizzo dell'immagine errata in base al nome, specificare invece l'ID immagine.
Utilizzo dei riferimenti di immagine tra account in un catalogo privato nell'API
Le istanze di cui esegui il provisioning appartengono al tuo account. Le immagini condivise al tuo account tramite un catalogo privato potrebbero appartenere ad altri account. Quando esegui il provisioning di un'istanza da un'immagine che appartiene
a un altro account o da un modello di istanza che specifica tale immagine, l'immagine appartiene ancora all'altro account anche se l'istanza appartiene al tuo account. Un riferimento a tale immagine potrebbe esistere nei dettagli dell'istanza
e delle relative risorse. Ad esempio, i dettagli relativi al volume di avvio e le istantanee create da tale volume di avvio potrebbero fare riferimento a tale immagine. Indipendentemente dalle tue autorizzazioni, non puoi accedere a tale immagine
dai suoi id, crn o href e i tentativi non riescono come se l'immagine non esistesse.
Nell'API, viene visualizzato un riferimento dell'immagine in luoghi quali le proprietà image degli schemi di risposte Instance e BareMetalServerInitialization e le proprietà source_image degli
schemi di risposte Volume e Snapshot. Il seguente esempio utilizza il recupero dei dati dell'istanza per illustrare come potrebbe verificarsi questo errore.
curl -X GET "$vpc_api_endpoint/v1/instances/r006-44905aa4-119d-5622-00ce-face32b78999?version=2022-09-06&generation=2" -H "Authorization: Bearer $iam_token" | jq -r '(.image)'
L'esempio utilizza jq come parser, uno strumento di terze parti distribuito sotto licenza MIT. Alcuni sistemi operativi non includono di default il programma “ jq ”. Prima dell'uso, installare jq oppure utilizzare un altro parser JSON.
Quando si esegue questo comando, viene visualizzato il seguente output.
{
"crn": "crn:v1:bluemix:public:is:us-south:a/123456::image:r006-6cab2dbd-4e57-4dc5-810b-b7366cb78999",
"href": "https://us-south.iaas.cloud.ibm.com/v1/images/r006-6cab2dbd-4e57-4dc5-810b-b7366cb78999",
"id": "r006-6cab2dbd-4e57-4dc5-810b-b7366cb78999",
"name": "test-image"
}
Se si tenta di richiamare le informazioni su questa immagine utilizzando id,
curl -X GET "$vpc_api_endpoint/v1/images/r006-6cab2dbd-4e57-4dc5-810b-b7366cb78999?version=2022-09-06&generation=2" -H "Authorization: Bearer $iam_token"
il tentativo fallisce con il codice di stato HTTP 404 (non trovato). Questo codice di stato indica che l'immagine non esiste nel tuo account. Se il provisioning dell'istanza è stato eseguito utilizzando un'immagine di catalogo condivisa in un altro account, questa risposta è la risposta che ottieni sempre anche se l'immagine esiste ancora nell'account proprietario.
Inoltre, è possibile che l'immagine a cui si fa riferimento abbia lo stesso nome di un'immagine personalizzata nel tuo account. Ma questi nomi di immagini sono per due immagini diverse in due account diversi. id, crn e href identificano in modo univoco un'immagine in IBM Cloud®.
Verificare che i client gestiscano correttamente gli errori di ricerca dei riferimenti delle immagini e non presumere che le immagini inaccessibili siano state eliminate, anche quando vengono eseguite con accesso completo alle proprie immagini.
Per evitare il possibile richiamo o l'utilizzo dell'immagine non corretta da parte di name, specificare invece l'immagine id, crn o href.
Utilizzo dei riferimenti immagine cross - account in un catalogo privato in Terraform
Le istanze di cui esegui il provisioning appartengono al tuo account. Le immagini condivise al tuo account tramite un catalogo privato potrebbero appartenere ad altri account. Quando esegui il provisioning di un'istanza da un'immagine che appartiene a un altro account o da un modello di istanza che specifica tale immagine, l'immagine appartiene ancora all'altro account anche se l'istanza appartiene al tuo account. Un riferimento a tale immagine potrebbe esistere nei dettagli dell'istanza e delle relative risorse. Ad esempio, i dettagli relativi al volume di avvio e a qualsiasi istantanea creata da tale volume di avvio potrebbero fare riferimento a tale immagine. Indipendentemente dalle tue autorizzazioni, non puoi accedere a questo tipo di immagine personalizzata in base al suo ID e i tentativi non riescono come se l'immagine non esistesse.
I riferimenti di immagine sono utilizzati in alcuni punti diversi nel terraform. Ad esempio, se utilizzi l'origine dati dell'istanza per richiamare i dati dell'istanza, vedi quanto segue nella risposta dell'origine dati.
"image": "r006-e0d3b6fb-5421-4421-9061-0ca9f79a4990"
Se tenti di richiamare le informazioni su questa immagine utilizzando la sua origine dati,
data "ibm_is_image" "example" {
identifier = "r006-e0d3b6fb-5421-4421-9061-0ca9f79a4990"
}
quindi questo tentativo ha esito negativo con un errore come il seguente esempio:
Error: [ERROR] No image found with id r006-e0d3b6fb-5421-4421-9061-0ca9f79a4990
Questo errore indica che l'immagine non è presente nel tuo account. Se il provisioning dell'istanza è stato eseguito utilizzando un'immagine di catalogo condivisa in un altro account, questo output è l'output che vedi sempre anche se l'immagine esiste ancora nell'account proprietario.
Inoltre, è possibile che l'immagine a cui si fa riferimento abbia lo stesso nome di un'immagine personalizzata nel tuo account. Ma questi nomi di immagini sono per due immagini diverse in due account diversi. Mentre il terraform utilizza sia l'ID che il nome per identificare un'immagine, solo l'ID identifica in modo univoco un'immagine in IBM Cloud®. Per evitare il possibile richiamo o l'utilizzo di un'immagine errata in base al nome, specificare invece l'ID immagine. Per ulteriori informazioni, consultare origine dati immagine.
Eliminazione di una immagine personalizzata in un catalogo privato
Un'immagine personalizzata non può essere eliminata, riutilizzata per una versione differente o riutilizzata per un'offerta di prodotto differente mentre tale immagine personalizzata è gestita da un catalogo privato.
L'eliminazione del catalogo privato che contiene direttamente le offerte del prodotto non rimuove immediatamente le offerte. Le immagini personalizzate gestite dal catalogo privato continuano a essere gestite dal catalogo per 7 giorni dopo la data in cui hai eliminato il catalogo privato.
Se si desidera riutilizzare immediatamente o eliminare l'immagine personalizzata, assicurarsi di rimuovere prima tale immagine personalizzata dalla versione associata nell'offerta del prodotto del catalogo privato o eliminare l'offerta del prodotto.
Per eliminare un'immagine personalizzata pubblicata o condivisa dal catalogo privato, vedi l'esercitazione Deprecating a private product. Per eliminare l'intero catalogo privato, vedi l'esercitazione Eliminazione di un catalogo privato utilizzando la console.
Gruppi di istanze e catalogo privato
Puoi utilizzare un'immagine personalizzata in un catalogo privato per creare un gruppo di istanze. Tuttavia, devi prima creare una politica service - to - service in globalcatalog-collection.instance.retrieve prima di creare il
gruppo di istanze. Per ulteriori informazioni, vedi Utilizzo di una immagine personalizzata in un catalogo privato con un gruppo di istanze.
Le informazioni su quale immagine personalizzata si trova in un catalogo privato utilizzato per il provisioning di un'istanza non sono persistenti in tutte le risorse IBM Cloud VPC. Le informazioni sull'immagine personalizzata in un Catalogo privato non sono disponibili in Istantanea per VPC o Immagine dal volume. Le informazioni del sistema operativo, richieste quando esegui il provisioning di un server virtuale, sono disponibili.
Importazione della tua immagine personalizzata in un catalogo privato
Dopo che la tua immagine personalizzata viene importata in IBM Cloud VPC, puoi importare tale immagine personalizzata in un catalogo privato.