Configurando Recursos de Imagem para Imagens Personalizadas

Recursos de imagem são as opções de configuração disponíveis ao iniciar uma instância por uma imagem. Alguns exemplos de recurso de imagem são o firmware usado para inicializar a instância, os tipos de anexo de volume suportados e assim por diante. O conjunto completo de recursos de imagem fornecidos pelo Oracle Cloud Infrastructure Compute é definido no esquema de recurso de imagem global. Você também pode criar seus próprios esquemas de recurso de imagem personalizada com base no esquema global para especificar e configurar recursos de imagens personalizadas. Usando esses esquemas, você pode personalizar a configuração de imagem e as opções disponíveis quando os usuários iniciam instâncias por meio das imagens personalizadas.

Cuidado

O uso dessa funcionalidade permite personalizar os recursos de imagem por meio dos recursos padrão que a Oracle recomenda e deve ser usado apenas em cenários avançados de imagem personalizada. Certifique-se de entender as opções de configuração ideais para sua imagem personalizada.

Esquema de Recurso de Imagem Global

O JSON a seguir é o que é retornado quando você usa a operação GetComputeGlobalImageCapabilitySchemaVersion da API ou o comando global-image-capability-schema-version da CLI. Representa o conjunto completo de recursos de imagem disponíveis para imagens. Os valores padrão especificados para cada elemento são os valores recomendados para cada opção.

Você pode personalizar essas opções criando esquemas de recurso de imagem. Ao criar um esquema de recurso de imagem, você pode especificar um subconjunto dos valores que estão incluídos no esquema de recursos globais. Os valores não incluídos no esquema de recursos globais não podem ser fornecidos em um esquema de recurso de imagem.

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

Elementos do Esquema

A lista a seguir descreve todos os elementos disponíveis no esquema de recursos de imagem globais.

  • Compute.AMD_SecureEncryptedVirtualization: Fornece computação confidencial para usuários de máquina virtual utilizando o AMD SEV (Secure Encrypted Virtualization) nas formas AMD. Os dados são criptografados em uso e você pode verificar a confidencialidade por meio de um processo de certificação seguro. O valor padrão é falso.
  • Compute.Firmware: O firmware usado para inicializar a instância de máquina virtual. O valor padrão é UEFI_64.

  • Compute.SecureBoot: Se a instância pode usar a Inicialização Segura. O valor padrão é falso.

    Importante

    As imagens personalizadas não são compatíveis com a Inicialização Segura.
  • Compute.LaunchMode: O modo de configuração para iniciar instâncias. O valor padrão é PARAVIRTUALIZED.

  • Network.AttachmentType: O tipo de emulação para a VNIC principal, que é automaticamente criada e anexada no início da instância. O valor padrão é PARAVIRTUALIZED.

  • Storage.BootVolumeType: Especifica as opções de driver do volume de inicialização da imagem. O valor padrão é PARAVIRTUALIZED.

  • Storage.LocalDataVolumeType: Especifica as opções de driver da imagem para acessar volumes de armazenamento local. O valor padrão é PARAVIRTUALIZED.

  • Storage.RemoteDataVolumeType: Especifica as opções de driver da imagem para acessar volumes de armazenamento remoto. O valor padrão é PARAVIRTUALIZED.

  • Storage.ConsistentVolumeNaming: Especifica se os caminhos de dispositivos consistentes para iSCSI e volumes em blocos anexados paravirtualizados estão ativados para a imagem. Se ativados, a imagem deverá suportar nomes de dispositivos consistentes. O valor padrão é verdadeiro.

  • Storage.ParaVirtualization.EncryptionInTransit: Especifica se a criptografia em trânsito está ativada para o anexo de volume de inicialização da imagem. Só se aplica a anexos de volumes de inicialização paravirtualizados. O valor padrão é verdadeiro.

  • Storage.ParaVirtualization.AttachmentVersion: Especifica a versão de paravirtualização para volume de inicialização e anexos de volumes em blocos. Só se aplica a anexos de volumes paravirtualizados. O valor padrão é 2.

  • Storage.Iscsi.MultipathDeviceSupported: Especifica se anexos ativados para multipath são suportados para a imagem. Aplica-se apenas a anexos de volume iSCSI. O valor padrão é falso.

Política de IAM Necessária

Para usar o Oracle Cloud Infrastructure, você deve receber de um administrador o acesso de segurança em uma política . Esse acesso é necessário, quer você esteja usando a Console ou a API REST com um SDK, uma CLI ou outra ferramenta. Caso receba uma mensagem de que você não tem permissão ou não está autorizado, verifique com o administrador o tipo de acesso que você tem e em qual compartimento  trabalhar.

Se você for iniciante em políticas, consulte Conceitos Básicos de Políticas e Políticas Comuns. Para obter material de referência sobre como escrever políticas para instâncias, redes na nuvem ou outros recursos da API de Serviços Principais, consulte Detalhes para Serviços Principais.

Para administradores, a seguinte política fornecem acesso total à estrutura do esquema de recurso de imagem:

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

Usando a Console

  1. Abra o menu de navegação e clique em Compute. Em Compute, clique em Imagens Personalizadas.
  2. Clique na imagem personalizada em que você está interessado.

  3. Clique em Editar recursos de imagem.

  4. Edite os recursos de imagem que você deseja configurar. Para obter detalhes sobre cada recurso de imagem, consulte Elementos do Esquema.

  5. Clique em Salvar alterações.

Usando a CLI

Para obter informações sobre como usar a CLI, consulte Interface de Linha de Comando (CLI). Para trabalhar com esquemas de recurso de imagem usando a CLI, abra um prompt de comando e execute qualquer um dos comandos a seguir.

Para listar o esquema de recurso de imagem global:

oci compute global-image-capability-schema list

Para listar as versões do esquema de recurso de imagem global:

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

Para recuperar a versão do esquema de recurso de imagem global:

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>

Para listar os esquemas de recurso de imagem no compartimento especificado:

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

Para recuperar o esquema de recurso de imagem para o ID especificado:

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

Para atualizar o esquema de recurso de imagem especificado:

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

Para criar um esquema de recurso de imagem:

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>

Quando você cria o esquema, especifica o OCID da imagem personalizada à qual deseja aplicar o esquema de recurso de imagem.

Para excluir o esquema de recurso de imagem especificado:

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

Usando a API

Exemplo

Este exemplo mostra como usar a CLI para atualizar o esquema de recurso de imagem para uma imagem personalizada. Para obter informações sobre como usar a CLI, consulte Interface de Linha de Comando (CLI).

  1. Abra um prompt de comando e execute o seguinte comando para recuperar o esquema global atual da região:

    oci compute global-image-capability-schema list

    A resposta é semelhante à seguinte:

    {
      "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. Usando o OCID e o nome da versão do esquema de recurso de imagem global que você recuperou na etapa anterior, execute o seguinte comando para obter o esquema de recurso de imagem global:
    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>

    A resposta contém o esquema de recurso de imagem global.

  3. Localize o elemento de esquema que você deseja atualizar e faça o seguinte:

    1. Copie o elemento de esquema que você deseja atualizar. Este exemplo usa o elemento de esquema Storage.ParaVirtualization.EncryptionInTransit.
    2. Se o elemento do esquema contiver um campo source, altere o valor de GLOBAL para IMAGE. Por exemplo:

      {
        "Storage.ParaVirtualization.EncryptionInTransit":
        {
          "default-value": true,
          "descriptor-type": "boolean",
          "source": "IMAGE"
        }
      }
    3. Salve os elementos de esquema atualizados como um arquivo .json.
  4. Para verificar se a imagem já está usando o recurso de imagem, execute o seguinte comando:

    oci compute image-capability-schema list --image-id <image_OCID>
    • Se a imagem estiver usando o recurso de imagem, a resposta conterá uma linha semelhante à seguinte:

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

      A resposta também contém o OCID do esquema de recurso de imagem.

    • Se a imagem não estiver usando o recurso de imagem, crie um esquema de recurso de imagem para a imagem executando o seguinte comando:

      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> é o caminho para o arquivo .json que contém os elementos de esquema que você deseja atualizar, que você criou na etapa anterior.

      A resposta é semelhante à seguinte:

      {
        "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. Para atualizar o esquema de recurso de imagem, execute o seguinte comando:

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

    <schema_data_file> é o caminho para o arquivo .json que contém os elementos de esquema que você deseja atualizar.