Configuration des fonctionnalités d'image pour les images personnalisées

Les fonctionnalités d'image sont les options de configuration disponibles lors du lancement d'une instance à partir d'une image. Les fonctionnalités d'image sont, par exemple, le microprogramme utilisé pour démarrer l'instance, les types d'attachement de volume pris en charge, etc. L'ensemble complet des fonctionnalités d'image fournies par Oracle Cloud Infrastructure Compute est défini dans le schéma global des fonctionnalités d'image. Vous pouvez également créer vos propres schémas de fonctionnalités d'image personnalisés sur la base du schéma global pour spécifier et configurer les fonctionnalités de vos images personnalisées. A l'aide de ces schémas, vous pouvez personnaliser la configuration d'image et les options disponibles lorsque les utilisateurs lancent des instances à partir de vos images personnalisées.

Attention

L'utilisation de cette fonctionnalité vous permet de personnaliser les fonctionnalités d'image à partir des fonctionnalités par défaut recommandées par Oracle. Elle s'applique uniquement aux scénarios d'image personnalisée avancés. Veillez à comprendre les options de configuration optimales pour votre image personnalisée.

Schéma global de fonctionnalités d'image

Le contenu JSON suivant présente ce qui est renvoyé lorsque vous utilisez l'opération d'API GetComputeGlobalImageCapabilitySchemaVersion ou la commande d'interface de ligne de commande global-image-capability-schema-version. Il représente l'ensemble complet des fonctionnalités d'image disponibles pour les images. Les valeurs par défaut indiquées pour chaque élément sont les valeurs recommandées pour chaque option.

Vous pouvez personnaliser ces options en créant des schémas de fonctionnalités d'image. Lorsque vous créez un schéma de fonctionnalités d'image, vous pouvez spécifier un sous-ensemble des valeurs incluses dans le schéma global de fonctionnalités. Les valeurs qui ne sont pas incluses dans le schéma de fonctionnalités globales ne peuvent pas être fournies dans un schéma de fonctionnalités d'image.

{
  "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
   }
}

Eléments du schéma

La liste suivante décrit tous les éléments disponibles dans le schéma global de fonctionnalités d'image.

  • Compute.AMD_SecureEncryptedVirtualization : fournit le calcul confidentiel aux utilisateurs de machine virtuelle employant AMD SEV (Secure Encrypted Virtualization) sur des formes AMD. Les données sont cryptées en cours d'utilisation. Vous pouvez vérifier la confidentialité via un processus d'attestation sécurisé. La valeur par défaut est False.
  • Compute.Firmware : microprogramme utilisé pour démarrer l'instance de machine virtuelle. La valeur par défaut est UEFI_64.

  • Compute.SecureBoot : indique si l'instance peut utiliser le démarrage sécurisé. La valeur par défaut est False.

    Important

    Les images personnalisées ne prennent pas en charge l'initialisation sécurisée.
  • Compute.LaunchMode : mode de configuration pour le lancement des instances. La valeur par défaut est PARAVIRTUALIZED.

  • Network.AttachmentType : type d'émulation pour la carte d'interface réseau virtuelle principale, qui est automatiquement créée et attachée lorsque l'instance est lancée. La valeur par défaut est PARAVIRTUALIZED.

  • Storage.BootVolumeType : indique les options de pilote pour le volume d'initialisation de l'image. La valeur par défaut est PARAVIRTUALIZED.

  • Storage.LocalDataVolumeType : indique les options de pilote nécessaires pour que l'image ait accès aux volumes de stockage locaux. La valeur par défaut est PARAVIRTUALIZED.

  • Storage.RemoteDataVolumeType : indique les options de pilote pour que l'image ait accès aux volumes de stockage distants. La valeur par défaut est PARAVIRTUALIZED.

  • Storage.ConsistentVolumeNaming : indique si des chemins d'appareil cohérents pour iSCSI et des volumes de blocs attachés et paravirtualisés sont activés pour l'image. Si c'est le cas, l'image doit prendre en charge les noms d'appareil cohérents. La valeur par défaut est True.

  • Stockage. ParaVirtualization.EncryptionInTransit : indique si le cryptage en transit est activé pour l'attachement de volume d'initialisation de l'image. Applicable uniquement aux attachements de volume d'initialisation paravirtualisé. La valeur par défaut est True.

  • Storage.ParaVirtualization.AttachmentVersion : indique la version de paravirtualisation pour les attachements de volume d'initialisation et de volume de blocs. Applicable uniquement aux attachements de volume paravirtualisé. La valeur par défaut est 2.

  • Storage.Iscsi.MultipathDeviceSupported : indique si les attachements à chemins d'accès multiples sont pris en charge pour l'image. Applicable uniquement aux attachements de volume iSCI. La valeur par défaut est False.

Stratégie IAM requise

Pour utiliser Oracle Cloud Infrastructure, un administrateur doit vous accorder un accès sécurisé dans une stratégie. Cet accès est requis que vous utilisiez la console ou l'API REST avec un kit SDK, l'interface de ligne de commande ou un autre outil. Si un message vous indique que vous ne disposez pas des droits d'accès ou des autorisations nécessaires, vérifiez auprès de l'administrateur le type d'accès qui vous a été accordé et le compartiment  dans lequel vous devez travailler.

Si vous ne connaissez pas les stratégies, reportez-vous à Introduction aux stratégies et à Stratégies courantes. Afin d'obtenir des documents de référence sur l'écriture de stratégies pour des instances, des réseaux cloud ou d'autres ressources d'API de services de base, reportez-vous à Détails des services de base.

Pour les administrateurs, la stratégie suivante fournit un accès complet à la structure du schéma de fonctionnalités d'image :

Allow group IAM_group_name to manage compute-image-capability-schema in tenancy

Utilisation de la console

  1. Ouvrez le menu de navigation et cliquez sur Compute. Sous Compute, cliquez sur Images personnalisées.
  2. Cliquez sur l'image personnalisée qui vous intéresse.

  3. Cliquez sur Modifier les fonctionnalités d'image.

  4. Modifiez les fonctionnalités d'image à configurer. Pour plus de détails sur chaque fonctionnalité d'image, reportez-vous à Eléments de schéma.

  5. Cliquez sur Enregistrer les modifications.

Utilisation de l'interface de ligne de commande

Pour obtenir des informations sur l'utilisation de l'interface de ligne de commande, reportez-vous à Interface de ligne de commande (CLI). Pour utiliser les schémas de fonctionnalités d'image à l'aide de l'interface de ligne de commande, ouvrez une invite de commande et exécutez l'une des commandes suivantes.

Pour répertorier les schémas globaux de fonctionnalités d'image :

oci compute global-image-capability-schema list

Pour répertorier les versions de schéma global de fonctionnalités d'image :

oci compute global-image-capability-schema-version list --global-image-capability-schema-id <global_image_capability_schema_OCID>

Pour extraire la version de schéma global de fonctionnalités d'image :

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>

Pour répertorier les schémas de fonctionnalités d'image du compartiment spécifié :

oci compute image-capability-schema list --compartment-id <compartment_OCID>

Pour extraire le schéma de fonctionnalités d'image correspondant à l'ID spécifié :

oci compute image-capability-schema get --image-capability-schema-id <image_capability_schema_OCID>

Pour mettre à jour le schéma de fonctionnalités d'image indiqué :

oci -d compute image-capability-schema update --image-capability-schema-id <image_capability_schema_OCID> --schema-data file://<schema_data_file>.json

Pour créer un schéma de fonctionnalités d'image :

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>

Lorsque vous créez le schéma, vous indiquez l'OCID de l'image personnalisée à laquelle vous voulez appliquer le schéma de fonctionnalités d'image.

Pour supprimer le schéma de fonctionnalités d'image indiqué :

oci -d compute image-capability-schema delete --image-capability-schema-id <image_capability_schema_OCID>

Utilisation de l'API

Exemple

Cet exemple montre comment utiliser l'interface de ligne de commande pour mettre à jour le schéma de fonctionnalités d'une image personnalisée. Pour obtenir des informations sur l'utilisation de l'interface de ligne de commande, reportez-vous à Interface de ligne de commande (CLI).

  1. Ouvrez une invite de commande et exécutez la commande suivante pour extraire le schéma global en cours de la région :

    oci compute global-image-capability-schema list

    La réponse se présente de la manière suivante :

    {
      "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>"
    }
  2. En utilisant l'OCID et le nom de version du schéma global de fonctionnalités d'image que vous avez extraits à l'étape précédente, exécutez la commande suivante pour obtenir le schéma global de fonctionnalités d'image :
    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>

    La réponse contient le schéma global de fonctionnalités d'image.

  3. Localisez l'élément de schéma à mettre à jour, puis procédez comme suit :

    1. Copiez l'élément de schéma à mettre à jour. Cet exemple utilise l'élément de schéma Storage.ParaVirtualization.EncryptionInTransit.
    2. Si l'élément de schéma contient un champ source, modifiez la valeur de GLOBAL en IMAGE. Par exemple :

      {
        "Storage.ParaVirtualization.EncryptionInTransit":
        {
          "default-value": true,
          "descriptor-type": "boolean",
          "source": "IMAGE"
        }
      }
    3. Enregistrez les éléments de schéma mis à jour en tant que fichier .json.
  4. Pour vérifier si l'image utilise déjà la fonctionnalité d'image, exécutez la commande suivante :

    oci compute image-capability-schema list --image-id <image_OCID>
    • Si l'image utilise la fonctionnalité d'image, la réponse contient une ligne semblable à la suivante :

      "compute-global-image-capability-schema-version-name": "<version_name>"

      La réponse contient également l'OCID du schéma de fonctionnalités d'image.

    • Si l'image n'utilise pas la fonctionnalité d'image, exécutez la commande suivante pour en créer un :

      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> est le chemin du fichier .json qui contient les éléments de schéma à mettre à jour, que vous avez créés à l'étape précédente.

      La réponse se présente de la manière suivante :

      {
        "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>"
      }
  5. Pour mettre à jour le schéma de fonctionnalités d'image, exécutez la commande suivante :

    oci compute image-capability-schema update --image-capability-schema-id <image_capability_schema_OCID> --schema-data file://<schema_data_file>.json

    <schema_data_file> est le chemin du fichier .json qui contient les éléments de schéma à mettre à jour.