Imagefunktionen für benutzerdefinierte Images konfigurieren
Imagefunktionen sind die Konfigurationsoptionen, die beim Starten einer Instanz aus einem Image verfügbar sind. Beispiele für Imagefunktionen sind die Firmware zum Booten der Instanz, die unterstützten Volume-Anhangstypen usw. Die vollständigen Imagefunktionen, die von Oracle Cloud Infrastructure Compute bereitgestellt werden, sind im globalen Imagefunktionsschema definiert. Sie können auch eigene benutzerdefinierte Imagefunktionsschemas basierend auf dem globalen Imagefunktionsschema erstellen, um Imagefunktionen für Ihre benutzerdefinierten Images anzugeben und zu konfigurieren. Mit diesen Schemas können Sie die Imagekonfiguration und die verfügbaren Optionen anpassen, wenn Benutzer Instanzen aus Ihren benutzerdefinierten Images starten.
Mit diesem Feature können Sie Imagefunktionen abweichend von den Standardfunktionen, die Oracle empfiehlt, anpassen. Verwenden Sie es nur für erweiterte Szenarios mit benutzerdefinierten Images. Machen Sie sich mit den optimalen Konfigurationsoptionen für Ihr benutzerdefiniertes Image vertraut.
Globales Imagefunktionsschema
Die folgende JSON wird zurückgegeben, wenn Sie den API-Vorgang GetComputeGlobalImageCapabilitySchemaVersion
oder den CLI-Befehl global-image-capability-schema-version
verwenden. Sie stellt das vollständige Set aus Imagefunktionen dar, die für Images verfügbar sind. Die für die einzelnen Elemente angegebenen Standardwerte sind die empfohlenen Werte für jede Option.
Sie können diese Optionen anpassen, indem Sie Imagefunktionsschemas erstellen. Wenn Sie ein Imagefunktionsschema erstellen, können Sie eine Teilmenge der Werte angeben, die im globalen Funktionsschema enthalten sind. Werte, die nicht im globalen Funktionsschema enthalten sind, können nicht in einem Imagefunktionsschema angegeben werden.
{
"Compute.AMD_SecureEncryptedVirtualization": {
"descriptorType": "boolean",
"source": "IMAGE",
"defaultValue": false
},
"Compute.Firmware": {
"descriptorType": "enumstring",
"values": [
"BIOS",
"UEFI_64"
],
"defaultValue": "UEFI_64"
},
"Compute.SecureBoot": {
"descriptorType": "boolean",
"defaultValue": false
},
"Compute.LaunchMode": {
"descriptorType": "enumstring",
"values": [
"NATIVE",
"EMULATED",
"PARAVIRTUALIZED",
"CUSTOM"
],
"defaultValue": "PARAVIRTUALIZED"
},
"Network.AttachmentType": {
"descriptorType": "enumstring",
"values": [
"E1000",
"VFIO",
"PARAVIRTUALIZED"
],
"defaultValue": "PARAVIRTUALIZED"
},
"Storage.BootVolumeType": {
"descriptorType": "enumstring",
"values": [
"ISCSI",
"SCSI",
"IDE",
"PARAVIRTUALIZED"
],
"defaultValue": "PARAVIRTUALIZED"
},
"Storage.LocalDataVolumeType": {
"descriptorType": "enumstring",
"values": [
"ISCSI",
"SCSI",
"IDE",
"PARAVIRTUALIZED"
],
"defaultValue": "PARAVIRTUALIZED"
},
"Storage.RemoteDataVolumeType": {
"descriptorType": "enumstring",
"values": [
"ISCSI",
"SCSI",
"IDE",
"PARAVIRTUALIZED"
],
"defaultValue": "PARAVIRTUALIZED"
},
"Storage.ConsistentVolumeNaming": {
"descriptorType": "boolean",
"defaultValue": "true"
},
"Storage.ParaVirtualization.EncryptionInTransit": {
"descriptorType": "boolean",
"defaultValue": "true"
},
"Storage.ParaVirtualization.AttachmentVersion": {
"descriptorType": "enuminteger",
"values": [
1,
2
],
"defaultValue": 2
},
"Storage.Iscsi.MultipathDeviceSupported": {
"descriptorType": "boolean",
"defaultValue": false
}
}
Schemaelemente
In der folgenden Liste werden alle verfügbaren Elemente im globalen Imagefunktionsschema beschrieben.
- Compute.AMD_SecureEncryptedVirtualization: Bietet Benutzern virtueller Maschinen Confidential Computing unter Nutzung von AMD Secure Encrypted Virtualization (SEV) auf AMD-Ausprägungen. Daten werden bei Gebrauch verschlüsselt, und Sie können die Vertraulichkeit über einen sicheren Bestätigungsprozess überprüfen. Der Standardwert ist "false".
Compute.Firmware: Die zum Booten der VM-Instanz verwendete Firmware. Der Standardwert lautet UEFI_64.
-
Compute.SecureBoot: Gibt an, ob die Instanz den sicheren Start verwenden kann. Der Standardwert ist "false".
Wichtig
Benutzerdefinierte Images unterstützen den sicheren Start nicht. Compute.LaunchMode: Der Konfigurationsmodus zum Starten von Instanzen. Der Standardwert lautet PARAVIRTUALIZED.
Network.AttachmentType: Der Emulationstyp für die primäre VNIC, die beim Starten der Instanz automatisch erstellt und angehängt wird. Der Standardwert lautet PARAVIRTUALIZED.
Storage.BootVolumeType: Gibt die Treiberoptionen für das Boot-Volume des Images an. Der Standardwert lautet PARAVIRTUALIZED.
Storage.LocalDataVolumeType: Gibt die Treiberoptionen für das Image zum Zugriff auf lokale Speicher-Volumes an. Der Standardwert lautet PARAVIRTUALIZED.
Storage.RemoteDataVolumeType: Gibt die Treiberoptionen für das Image zum Zugriff auf Remotespeicher-Volumes an. Der Standardwert lautet PARAVIRTUALIZED.
Storage.ConsistentVolumeNaming: Gibt an, ob konsistente Gerätepfade für iSCSI und paravirtualisierte angehängte Block-Volumes für das Image aktiviert sind. Wenn diese Option aktiviert ist, muss das Image konsistente Gerätenamen unterstützen. Der Standardwert ist "true".
Storage.ParaVirtualization.EncryptionInTransit: Gibt an, ob die Verschlüsselung während der Übertragung für den Boot-Volume-Anhang des Images aktiviert ist. Gilt nur für paravirtualisierte Boot-Volume-Anhänge. Der Standardwert ist "true".
Storage.ParaVirtualization.AttachmentVersion: Gibt die Paravirtualisierungsversion für Boot-Volume- und Block-Volume-Anhänge an. Gilt nur für paravirtualisierte Volume-Anhänge. Der Standardwert ist 2.
Storage.Iscsi.MultipathDeviceSupported: Gibt an, ob Multipath-fähige Anhänge für das Image unterstützt werden. Gilt nur für iSCSI-Volume-Anhänge. Der Standardwert ist "false".
Erforderliche IAM-Policy
Um Oracle Cloud Infrastructure zu verwenden, muss Ihnen ein Administrator in einer Policy Sicherheitszugriff erteilen. Dieser Zugriff ist erforderlich, unabhängig davon, ob Sie die Konsole oder die REST-API mit einem SDK, einer CLI oder einem anderen Tool verwenden. Wenn Sie eine Meldung erhalten, dass Sie keine Berechtigung haben oder nicht autorisiert sind, fragen Sie den Administrator, welcher Zugriffstyp Ihnen erteilt wurde und in welchem Compartment Sie arbeiten sollen.
Für Administratoren bietet die folgende Policy vollen Zugriff auf das Imagefunktionsschema-Framework:
Allow group IAM_group_name to manage compute-image-capability-schema in tenancy
Konsole verwenden
- Öffnen Sie das Navigationsmenü, und klicken Sie auf Compute. Klicken Sie unter Compute auf Benutzerdefinierte Images.
-
Klicken Sie auf das gewünschte benutzerdefinierte Image.
-
Klicken Sie auf Imagefunktionen bearbeiten.
-
Bearbeiten Sie die Imagefunktionen, die Sie konfigurieren möchten. Einzelheiten zu den einzelnen Imagefunktionen finden Sie unter Schemaelemente.
-
Klicken Sie auf Änderungen speichern.
CLI verwenden
Informationen zur Verwendung der CLI finden Sie unter Befehlszeilenschnittstelle (CLI). Um mit Imagefunktionsschemas in der CLI zu arbeiten, öffnen Sie eine Eingabeaufforderung, und führen Sie einen der folgenden Befehle aus.
So listen Sie das globale Imagefunktionsschema auf:
oci compute global-image-capability-schema list
So listen Sie die Versionen für globale Imagefunktionsschemas auf:
oci compute global-image-capability-schema-version list --global-image-capability-schema-id <global_image_capability_schema_OCID>
So rufen Sie die Version für globale Imagefunktionsschemas ab:
oci compute global-image-capability-schema-version get --global-image-capability-schema-id <global_image_capability_schema_OCID> --global-image-capability-schema-version-name <version_name>
So listen Sie die Imagefunktionsschemas im angegebenen Compartment auf:
oci compute image-capability-schema list --compartment-id <compartment_OCID>
So rufen Sie das Imagefunktionsschema für die angegebene ID ab:
oci compute image-capability-schema get --image-capability-schema-id <image_capability_schema_OCID>
So aktualisieren Sie das angegebene Imagefunktionsschema:
oci -d compute image-capability-schema update --image-capability-schema-id <image_capability_schema_OCID> --schema-data file://<schema_data_file>.json
So erstellen Sie ein Imagefunktionsschema:
oci compute image-capability-schema create --schema-data file://<schema_data_file>.json --compartment-id <compartment_OCID> --image-id <image_OCID> --global-image-capability-schema-version-name <version_name>
Wenn Sie das Schema erstellen, geben Sie die Image-OCID für das benutzerdefinierte Image an, auf das Sie das Imagefunktionsschema anwenden möchten.
So löschen Sie das angegebene Imagefunktionsschema:
oci -d compute image-capability-schema delete --image-capability-schema-id <image_capability_schema_OCID>
API verwenden
Informationen zur Verwendung der API und zu Signieranforderungen finden Sie unter REST-API-Dokumentation und Sicherheitszugangsdaten. Informationen zu SDKs finden Sie unter SDKs und die CLI.
Verwenden Sie die folgenden API-Vorgänge, um mit Imagefunktionsschemas zu arbeiten:
- ListComputeGlobalImageCapabilitySchemas
- ListComputeGlobalImageCapabilitySchemaVersions
- GetComputeGlobalImageCapabilitySchema
- GetComputeGlobalImageCapabilitySchemaVersion
- ListComputeImageCapabilitySchemas
- GetComputeImageCapabilitySchema
- CreateComputeImageCapabilitySchema
- UpdateComputeImageCapabilitySchema
- DeleteComputeImageCapabilitySchema
- ChangeComputeImageCapabilitySchemaCompartment
Beispiel
Dieses Beispiel zeigt, wie Sie mit der CLI das Imagefunktionsschema für ein benutzerdefiniertes Image aktualisieren. Informationen zur Verwendung der CLI finden Sie unter Befehlszeilenschnittstelle (CLI).
-
Öffnen Sie eine Eingabeaufforderung, und führen Sie den folgenden Befehl aus, um das aktuelle globale Schema für die Region abzurufen:
oci compute global-image-capability-schema list
Das Ergebnis sieht in etwa folgendermaßen aus:
{ "data": [ { "compartment-id": null, "current-version-name": "<version_name>", "defined-tags": {}, "display-name": "OCI.ComputeGlobalImageCapabilitySchema", "freeform-tags": {}, "id": "ocid1.computeglobalimgcapschema.oc1.phx.<unique_ID>", "time-created": "2020-03-23T19:20:39.656000+00:00" } ], "opc-next-page": "<unique_ID>" }
- Führen Sie mit der OCID und dem Versionsnamen des globalen Imagefunktionsschemas, das Sie im vorherigen Schritt abgerufen haben, den folgenden Befehl aus, um das globale Imagefunktionsschema abzurufen:
oci compute global-image-capability-schema-version get --global-image-capability-schema-id <global_image_capability_schema_OCID> --global-image-capability-schema-version-name <version_name>
Die Antwort enthält das globale Imagefunktionsschema.
-
Suchen Sie das Schemaelement, das Sie aktualisieren möchten, und führen Sie dann die folgenden Schritte aus:
- Kopieren Sie das Schemaelement, das Sie aktualisieren möchten. In diesem Beispiel wird das Schemaelement Storage.ParaVirtualization.EncryptionInTransit verwendet.
-
Wenn das Schemaelement ein
source
-Feld enthält, ändern Sie den Wert von GLOBAL in BILD. Beispiel:{ "Storage.ParaVirtualization.EncryptionInTransit": { "default-value": true, "descriptor-type": "boolean", "source": "IMAGE" } }
- Speichern Sie die aktualisierten Schemaelemente als Datei
.json
.
-
Um zu prüfen, ob das Image bereits die Imagefunktion verwendet, führen Sie den folgenden Befehl aus:
oci compute image-capability-schema list --image-id <image_OCID>
-
Wenn das Image die Imagefunktion verwendet, enthält die Antwort eine Zeile wie die folgende:
"compute-global-image-capability-schema-version-name": "<version_name>"
Die Antwort enthält auch die Imagefunktionsschema-OCID.
-
Wenn das Image keine Imagefunktion verwendet, erstellen Sie ein Imagefunktionsschema für das Image, indem Sie den folgenden Befehl ausführen:
oci compute image-capability-schema create --global-image-capability-schema-version-name <version_name> --image-id <image_OCID> --schema-data file://<schema_data_file>.json --compartment-id <compartment_OCID>
<schema_data_file> ist der Pfad zur Datei
.json
mit den Schemaelementen, die Sie aktualisieren möchten. Sie wurden im vorherigen Schritt erstellt.Das Ergebnis sieht in etwa folgendermaßen aus:
{ "data": { "compartment-id": "ocid1.compartment.oc1..<unique_ID>", "compute-global-image-capability-schema-id": "ocid1.computeglobalimgcapschema.oc1.phx.<unique_ID>", "compute-global-image-capability-schema-version-name": "<version_name>", "defined-tags": {}, "display-name": "<compute_img_capability_schema_name>", "freeform-tags": {}, "id": "ocid1.computeimgcapschema.oc1.phx.<unique_ID>", "image-id": "ocid1.image.oc1.phx.<unique_ID>", "schema-data": { "Storage.ParaVirtualization.EncryptionInTransit": { "default-value": false, "descriptor-type": "boolean", "source": "IMAGE" } }, "time-created": "2021-07-01T22:42:56.140000+00:00" }, "etag": "<etag>" }
-
-
Um das Imagefunktionsschema zu aktualisieren, führen Sie den folgenden Befehl aus:
oci compute image-capability-schema update --image-capability-schema-id <image_capability_schema_OCID> --schema-data file://<schema_data_file>.json
<schema_data_file> ist der Pfad zur Datei
.json
mit den Schemaelementen, die Sie aktualisieren möchten.