カスタム・イメージのイメージ機能の構成

イメージ機能は、イメージからインスタンスを起動する場合に使用できる構成オプションです。イメージ機能の例として、インスタンスの起動に使用されるファームウェアや、サポートされるボリューム・アタッチメント・タイプなどがあります。Oracle Cloud Infrastructure Computeで提供されるイメージ機能の完全なセットは、グローバル・イメージ機能スキーマで定義されます。グローバル・イメージ機能スキーマに基づいて独自のカスタム・イメージ機能スキーマを作成し、カスタム・イメージのイメージ機能を指定および構成することもできます。これらのスキーマを使用して、ユーザーがカスタム・イメージからインスタンスを起動するときに使用可能なイメージ構成およびオプションをカスタマイズできます。

注意

この機能を使用すると、Oracleが推奨するデフォルト機能からイメージ機能をカスタマイズできます。これは、高度なカスタム・イメージ・シナリオでのみ使用する必要があります。カスタム・イメージの最適な構成オプションを確実に理解してください。

グローバル・イメージ機能スキーマ

次のJSONは、GetComputeGlobalImageCapabilitySchemaVersion API操作またはglobal-image-capability-schema-version CLIコマンドを使用した場合に返されるものです。これは、イメージで使用可能なイメージ機能の完全なセットを表します。各要素に指定されたデフォルト値は、各オプションの推奨値です。

これらのオプションは、イメージ機能スキーマを作成することでカスタマイズできます。イメージ機能スキーマを作成するときに、グローバル機能スキーマに含まれる値のサブセットを指定できます。グローバル機能スキーマに含まれていない値は、イメージ機能スキーマに指定できません。

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

スキーマ要素

次のリストでは、グローバル・イメージ機能スキーマで使用可能なすべての要素について説明します。

  • Compute.AMD_SecureEncryptedVirtualization: AMDシェイプでAMD Secure Encrypted Virtualization (SEV)を使用して、仮想マシン・ユーザーに機密コンピューティングを提供します。データは使用中に暗号化され、安全なアテステーション・プロセスを通じて機密性を検証できます。デフォルト値はfalseです。
  • Compute.Firmware: 仮想マシン・インスタンスの起動に使用されるファームウェア。デフォルト値はUEFI_64です。

  • Compute.SecureBoot: インスタンスがセキュア・ブートを使用できるかどうか。デフォルト値はfalseです。

    重要

    カスタム・イメージはセキュア・ブートをサポートしていません。
  • Compute.LaunchMode: インスタンスを起動するための構成モード。デフォルト値はPARAVIRTUALIZEDです。

  • Network.AttachmentType: プライマリVNICのエミュレーション・タイプ。インスタンスの起動時に自動的に作成およびアタッチされます。デフォルト値はPARAVIRTUALIZEDです。

  • Storage.BootVolumeType: イメージのブート・ボリュームのドライバ・オプションを指定します。デフォルト値はPARAVIRTUALIZEDです。

  • Storage.LocalDataVolumeType: ローカル・ストレージ・ボリュームにアクセスするためのイメージのドライバ・オプションを指定します。デフォルト値はPARAVIRTUALIZEDです。

  • Storage.RemoteDataVolumeType: リモート・ストレージ・ボリュームにアクセスするためのイメージのドライバ・オプションを指定します。デフォルト値はPARAVIRTUALIZEDです。

  • Storage.ConsistentVolumeNaming: iSCSIおよび準仮想化されアタッチされたブロック・ボリュームの一貫したデバイス・パスをイメージに対して有効にするかどうかを指定します。有効にした場合、イメージでは一貫したデバイス名をサポートする必要があります。デフォルト値はTRUEです。

  • Storage.ParaVirtualization.EncryptionInTransit: 転送中暗号化をイメージのブート・ボリューム・アタッチメントに対して有効にするかどうかを指定します。準仮想化ブート・ボリューム・アタッチメントにのみ適用されます。デフォルト値はTRUEです。

  • Storage.ParaVirtualization.AttachmentVersion: ブート・ボリュームおよびブロック・ボリュームのアタッチメントの準仮想化バージョンを指定します。準仮想化ボリューム・アタッチメントにのみ適用されます。デフォルト値は2です。

  • Storage.Iscsi.MultipathDeviceSupported: イメージでマルチパス対応のアタッチメントがサポートされるかどうかを指定します。iSCSIボリューム・アタッチメントにのみ適用されます。デフォルト値はfalseです。

必要なIAMポリシー

Oracle Cloud Infrastructureを使用するには、管理者によってポリシーでセキュリティ・アクセス権が付与されている必要があります。このアクセス権は、コンソール、あるいはSDK、CLIまたはその他のツールを使用したREST APIのいずれを使用している場合でも必要です。権限がない、または認可されていないというメッセージが表示される場合は、管理者に連絡して、どのタイプのアクセス権があり、どのコンパートメントで作業するかを確認してください。

ポリシーを初めて使用する場合は、ポリシーの開始共通ポリシーを参照してください。インスタンス、クラウド・ネットワークまたは他のCore Services APIリソースのポリシーを作成するための参照資料については、コア・サービスの詳細を参照してください。

管理者には、次のポリシーによってイメージ機能スキーマ・フレームワークへの完全なアクセス権が提供されます:

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

コンソールの使用

  1. ナビゲーション・メニューを開き、「コンピュート」をクリックします。「コンピュート」で、「カスタム・イメージ」をクリックします。
  2. 関心のあるカスタム・イメージをクリックします。

  3. 「イメージ機能の編集」をクリックします。

  4. 構成するイメージ機能を編集します。各イメージ機能の詳細は、スキーマ要素を参照してください。

  5. 「変更の保存」をクリックします。

CLIの使用

CLIの使用の詳細は、コマンド・ライン・インタフェース(CLI)を参照してください。CLIを使用してイメージ機能スキーマを操作するには、コマンド・プロンプトを開き、次のいずれかのコマンドを実行します。

グローバル・イメージ機能スキーマをリストするには:

oci compute global-image-capability-schema list

グローバル・イメージ機能スキーマ・バージョンをリストするには:

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

グローバル・イメージ機能スキーマ・バージョンを取得するには:

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>

指定したコンパートメント内のイメージ機能スキーマをリストするには:

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

指定したIDのイメージ機能スキーマを取得するには:

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

指定したイメージ機能スキーマを更新するには:

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

イメージ機能スキーマを作成するには:

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>

スキーマを作成する場合、イメージ機能スキーマを適用するカスタム・イメージのイメージOCIDを指定します。

指定したイメージ機能スキーマを削除するには:

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

APIの使用

この例は、CLIを使用してカスタム・イメージのイメージ機能スキーマを更新する方法を示しています。CLIの使用の詳細は、コマンド・ライン・インタフェース(CLI)を参照してください。

  1. コマンド・プロンプトを開き、次のコマンドを実行して、リージョンの現在のグローバル・スキーマを取得します:

    oci compute global-image-capability-schema list

    レスポンスは次のようになります:

    {
      "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. 前のステップで取得したグローバル・イメージ機能スキーマのOCIDおよびバージョン名を使用して、次のコマンドを実行し、グローバル・イメージ機能スキーマを取得します:
    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>

    レスポンスにはグローバル・イメージ機能スキーマが含まれます。

  3. 更新するスキーマ要素を見つけて、次の手順を実行します。

    1. 更新するスキーマ要素をコピーします。この例では、Storage.ParaVirtualization.EncryptionInTransitスキーマ要素を使用しています。
    2. スキーマ要素にsourceフィールドが含まれている場合は、値をGLOBALからIMAGEに変更します例:

      {
        "Storage.ParaVirtualization.EncryptionInTransit":
        {
          "default-value": true,
          "descriptor-type": "boolean",
          "source": "IMAGE"
        }
      }
    3. 更新したスキーマ要素を.jsonファイルとして保存します。
  4. イメージ機能がすでに使用されているかどうかを確認するには、次のコマンドを実行します:

    oci compute image-capability-schema list --image-id <image_OCID>
    • イメージがイメージ機能を使用している場合、レスポンスには次のような行が含まれます:

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

      レスポンスには、イメージ機能スキーマOCIDも含まれます。

    • イメージがイメージ機能を使用していない場合は、次のコマンドを実行して、イメージのイメージ機能スキーマを作成します:

      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>は、前のステップで作成した、更新するスキーマ要素を含む.jsonファイルへのパスです。

      レスポンスは次のようになります:

      {
        "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. イメージ機能スキーマを更新するには、次のコマンドを実行します:

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

    <schema_data_file>は、更新するスキーマ要素を含む.jsonファイルへのパスです。