Creación de una imagen de máquina virtual de Azure Stack HCI mediante una imagen en la cuenta de Azure Storage

Se aplica a: Azure Stack HCI, versión 23H2

En este artículo se describe cómo crear imágenes de máquina virtual (VM) para Azure Stack HCI mediante imágenes de origen de la cuenta de Azure Storage. Puede crear imágenes de máquina virtual mediante Azure Portal o la CLI de Azure y, a continuación, usar estas imágenes de máquina virtual para crear máquinas virtuales de Arc en Azure Stack HCI.

Requisitos previos

Antes de comenzar, asegúrese de que se completan los siguientes requisitos previos.

  • Asegúrese de revisar y completar los requisitos previos.

  • Para imágenes personalizadas en la cuenta de Azure Storage, tiene los siguientes requisitos previos adicionales:

    • Debe tener un disco duro virtual cargado en la cuenta de Azure Storage. Consulte cómo cargar una imagen de disco duro virtual en la cuenta de Azure Storage.
    • Si usa un VHDX:
      • La imagen VHDX debe ser de tipo Gen 2 y arranque seguro habilitado.
      • La imagen VHDX debe estar preparada mediante sysprep /generalize /shutdown /oobe. Para obtener más información, consulte Opciones de la línea de comandos de Sysprep.
  • Si usa un cliente para conectarse al clúster de Azure Stack HCI, consulte Conexión a Azure Stack HCI a través del cliente de la CLI de Azure.

  • Asegúrese de que tiene el rol Colaborador de datos de Storage Blob en la cuenta de almacenamiento que usa para la imagen. Para más información, vea Asignación de un rol de Azure para el acceso a datos de blob.

  • Asegúrese de que va a cargar el VHD o VHDX como una imagen de blob en páginas en la cuenta de almacenamiento. Solo se admiten imágenes de blobs en páginas para crear imágenes de máquina virtual a través de la cuenta de Almacenamiento.

Adición de una imagen de máquina virtual desde la cuenta de Azure Storage

Cree una imagen de máquina virtual a partir de una imagen en la cuenta de Azure Storage y, a continuación, use esta imagen para implementar máquinas virtuales en el clúster de Azure Stack HCI.

Siga estos pasos para crear una imagen de máquina virtual mediante la CLI de Azure.

Inicio de sesión y establecimiento de la suscripción

  1. Conéctese a un servidor en el sistema de Azure Stack HCI.

  2. Inicia sesión. Escriba:

    az login --use-device-code
    
  3. Establezca la suscripción.

    az account set --subscription <Subscription ID>
    

Configure algunos parámetros.

  1. Establezca la suscripción, el grupo de recursos, la ubicación, la ruta de acceso a la imagen en el recurso compartido local y el tipo de sistema operativo de la imagen. Reemplace los parámetros de < > por los valores adecuados.
$subscription = "<Subscription ID>"
$resource_group = "<Resource group>"
$location = "<Location for your Azure Stack HCI cluster>"
$osType = "<OS of source image>"
$imageName = "<VM image name>"
$imageSourcePath = "<path to the source image in the Storage account>"

Los parámetros se describen en la tabla siguiente:

Parámetro Descripción
subscription Grupo de recursos para el clúster de Azure Stack HCI que se asocia a esta imagen.
resource_group Grupo de recursos para el clúster de Azure Stack HCI que se asocia a esta imagen.
location Ubicación del clúster de Azure Stack HCI. Por ejemplo, podría ser eastus.
imageName Nombre de la imagen de máquina virtual creada a partir de la imagen en el recurso compartido local.
Nota: Azure rechaza todos los nombres que contienen la palabra clave Windows.
imageSourcePath Ruta de acceso a la dirección URL de SAS del blob de la imagen en la cuenta de almacenamiento. Para más información, consulte instrucciones sobre cómo obtener una dirección URL de SAS de blob de la imagen en la cuenta de almacenamiento.
Nota: Asegúrese de que todas las amperadas de la ruta de acceso se escapen con comillas dobles y la cadena de ruta de acceso completa se ajusta entre comillas simples.
os-type Sistema operativo asociado a la imagen de origen. Puede ser Windows o Linux.

Este es una salida de ejemplo:

PS C:\Users\azcli> $subscription = "<Subscription ID>"
PS C:\Users\azcli> $resource_group = "myhci-rg"
PS C:\Users\azcli> $location = "eastus"
PS C:\Users\azcli> $osType = "Windows"
PS C:\Users\azcli> $imageName = "myhci-storacctimage"
PS C:\Users\azcli> $imageSourcePath = 'https://vmimagevhdsa1.blob.core.windows.net/vhdcontainer/Windows_InsiderPreview_ServerStandard_en-us_VHDX_25131.vhdx?sp=r"&"st=2022-08-05T18:41:41Z"&"se=2022-08-06T02:41:41Z"&"spr=https"&"sv=2021-06-08"&"sr=b"&"sig=X7A98cQm%2FmNRaHmTbs9b4OWVv%2F9Q%2FJkWDBHVPyAc8jo%3D'

Creación de una imagen de máquina virtual a partir de una imagen en la cuenta de Azure Storage

  1. Seleccione una ubicación personalizada para implementar la imagen de máquina virtual. La ubicación personalizada debe corresponder a la ubicación personalizada del clúster de Azure Stack HCI. Obtenga el identificador de ubicación personalizado para el clúster de Azure Stack HCI. Ejecute el siguiente comando:

    $customLocationID=(az customlocation show --resource-group $resource_group --name "<custom location name for HCI cluster>" --query id -o tsv)
    
  2. Cree la imagen de máquina virtual a partir de una imagen de Marketplace especificada. Asegúrese de especificar la oferta, el publicador, la SKU y la versión de la imagen de Marketplace.

    az stack-hci-vm image create --subscription $subscription --resource-group $resource_Group --custom-location $customLocationID --location $location --name $imageName --os-type $osType --image-path $imageSourcePath --storage-path-id $storagepathid
    

    Se inicia un trabajo de implementación para la imagen de máquina virtual.

    En este ejemplo, la ruta de acceso de almacenamiento se especificó con la --storage-path-id marca y que se ha asegurado de que los datos de la carga de trabajo (incluida la máquina virtual, la imagen de máquina virtual, el disco de datos que no es del sistema operativo) se colocan en la ruta de acceso de almacenamiento especificada.

    Si no se especifica la marca, los datos de carga de trabajo se colocan automáticamente en una ruta de acceso de almacenamiento de alta disponibilidad.

La implementación de la imagen tarda unos minutos en completarse. El tiempo necesario para descargar la imagen depende del tamaño de la imagen en la cuenta de Azure Storage y del ancho de banda de red disponible para la descarga.

Este es una salida de ejemplo:

PS > $customLocationID=(az customlocation show --resource-group $resource_group --name "myhci-cl" --query id -o tsv)
PS C:\Users\azcli> az stack-hci-vm image create --subscription $subscription --resource-group $resource_Group --custom-location $customLocationID --location $location --name $imageName --os-type $osType --image-path $imageSourcePath --storage-path-id $storagepathid
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
{
  "extendedLocation": {
    "name": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.ExtendedLocation/customLocations/myhci-cl",
    "type": "CustomLocation"
  },
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/myhci-storacctimage",
  "location": "eastus",
  "name": "windos",
  "properties": {
    "identifier": null,
    "imagePath": null,
    "osType": "Windows",
    "provisioningState": "Succeeded",
    "status": {
      "downloadStatus": {
        "downloadSizeInMB": 7876
      },
        "progressPercentage": 100,
      "provisioningStatus": {
        "operationId": "cdc9c9a8-03a1-4fb6-8738-7a8550c87fd1*31CE1EA001C4B3E38EE29B78ED1FD47CCCECF78B4CEA9E9A85C0BAEA5F6D80CA",
        "status": "Succeeded"
      }
    },
    "storagepathId": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/storagecontainers/myhci-storagepath",
    "version": null
  },
  "resourceGroup": "myhci-rg",
  "systemData": {
    "createdAt": "2023-11-03T20:17:10.971662+00:00",
    "createdBy": "guspinto@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2023-11-03T21:08:01.190475+00:00",
    "lastModifiedBy": "319f651f-7ddb-4fc6-9857-7aef9250bd05",
    "lastModifiedByType": "Application"
  },
  "tags": null,
  "type": "microsoft.azurestackhci/galleryimages"
}
PS C:\Users\azcli>

Enumeración de imágenes de máquina virtual

Debe ver la lista de imágenes de máquina virtual para elegir una imagen que se va a administrar.

Siga estos pasos para enumerar la imagen de máquina virtual mediante la CLI de Azure.

  1. Ejecuta PowerShell como administrador.

  2. Configure algunos parámetros.

    $subscription = "<Subscription ID associated with your cluster>"
    $resource_group = "<Resource group name for your cluster>"
    
  3. Enumere todas las imágenes de máquina virtual asociadas al clúster. Ejecute el siguiente comando:

    az stack-hci-vm image list --subscription $subscription --resource-group $resource_group
    

    En función del comando usado, se muestra un conjunto correspondiente de imágenes asociadas al clúster de Azure Stack HCI.

    • Si especifica solo la suscripción, el comando muestra todas las imágenes de la suscripción.
    • Si especifica tanto la suscripción como el grupo de recursos, el comando muestra todas las imágenes del grupo de recursos.

    Estas imágenes incluyen:

    • Imágenes de máquina virtual de imágenes de Marketplace.
    • Imágenes personalizadas que residen en su cuenta de Azure Storage o están en un recurso compartido local en el clúster o en un cliente conectado al clúster.

Esta es una salida de ejemplo.

PS C:\Users\azcli> az stack-hci-vm image list --subscription "<Subscription ID>" --resource-group "myhci-rg"
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
[
  {
    "extendedLocation": {
      "name": "/subscriptions/<Subscription ID>/resourcegroups/myhci-rg/providers/microsoft.extendedlocation/customlocations/myhci-cl",
      "type": "CustomLocation"
    },
    "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/microsoft.azurestackhci/marketplacegalleryimages/w
inServer2022Az-01",
    "location": "eastus",
    "name": "winServer2022Az-01",
    "properties": {
      "hyperVGeneration": "V2",
      "identifier": {
        "offer": "windowsserver",
        "publisher": "microsoftwindowsserver",
        "sku": "2022-datacenter-azure-edition-core"
      },
      "imagePath": null,
      "osType": "Windows",
      "provisioningState": "Succeeded",
      "status": {
        "downloadStatus": {
          "downloadSizeInMB": 6710
        },
        "progressPercentage": 100,
        "provisioningStatus": {
          "operationId": "19742d69-4a00-4086-8f17-4dc1f7ee6681*E1E9889F0D1840B93150BD74D428EAE483CB67B0904F9A198C161AD471F670ED",
          "status": "Succeeded"
        }
      },
      "storagepathId": null,
      "version": {
        "name": "20348.2031.231006",
        "properties": {
          "storageProfile": {
            "osDiskImage": {
              "sizeInMB": 130050
            }
          }
        }
      }
    },
    "resourceGroup": "myhci-rg",
    "systemData": {
      "createdAt": "2023-10-30T21:44:53.020512+00:00",
      "createdBy": "guspinto@contoso.com",
      "createdByType": "User",
      "lastModifiedAt": "2023-10-30T22:08:25.495995+00:00",
      "lastModifiedBy": "319f651f-7ddb-4fc6-9857-7aef9250bd05",
      "lastModifiedByType": "Application"
    },
    "tags": {},
    "type": "microsoft.azurestackhci/marketplacegalleryimages"
  }
]
PS C:\Users\azcli>

Para más información sobre este comando de la CLI, consulte az stack-hci-vm image list.

Visualización de las propiedades de la imagen de máquina virtual

Es posible que desee ver las propiedades de las imágenes de máquina virtual antes de usar la imagen para crear una máquina virtual. Siga estos pasos para ver las propiedades de la imagen:

Siga estos pasos para usar la CLI de Azure para ver las propiedades de una imagen:

  1. Ejecuta PowerShell como administrador.

  2. Establezca los parámetros siguientes.

    $subscription = "<Subscription ID>"
    $resource_group = "<Cluster resource group>"
    $mktplaceImage = "<Marketplace image name>"
    
  3. Puede ver las propiedades de la imagen de dos maneras diferentes: especificar el identificador o especificar el nombre y el grupo de recursos. Siga estos pasos al especificar el identificador de imagen de Marketplace:

    1. Establezca el siguiente parámetro.

      $mktplaceImageID = "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/myhci-marketplaceimage"
      
    2. Ejecute el siguiente comando para ver las propiedades.

      az stack-hci-vm image show --ids $mktplaceImageID

      Esta es una salida de ejemplo para este comando:

      PS C:\Users\azcli> az stack-hci-vm image show --ids $mktplaceImageID
      Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
      {
        "extendedLocation": {
          "name": "/subscriptions/<Subscription ID>/resourcegroups/myhci-rg/providers/microsoft.extendedlocation/customlocations/myhci-cl",
          "type": "CustomLocation"
        },
        "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/myhci-marketplaceimage",
        "location": "eastus",
        "name": "myhci-marketplaceimage",
        "properties": {
          "containerName": null,
          "hyperVGeneration": null,
          "identifier": null,
          "imagePath": null,
          "osType": "Windows",
          "provisioningState": "Succeeded",
          "status": null,
          "version": null
        },
        "resourceGroup": "myhci-rg",
        "systemData": {
          "createdAt": "2022-08-05T20:52:38.579764+00:00",
          "createdBy": "guspinto@microsoft.com",
          "createdByType": "User",
          "lastModifiedAt": "2022-08-05T20:52:38.579764+00:00",
          "lastModifiedBy": "guspinto@microsoft.com",
          "lastModifiedByType": "User"
        },
        "tags": null,
        "type": "microsoft.azurestackhci/galleryimages"
      }
      PS C:\Users\azcli> 
      

Eliminación de la imagen de máquina virtual

Es posible que quiera eliminar una imagen de máquina virtual si se produce un error en la descarga por algún motivo o si la imagen ya no es necesaria. Siga estos pasos para eliminar las imágenes de máquina virtual.

  1. Ejecuta PowerShell como administrador.

  2. Establezca los siguientes parámetros:

    $subscription = "<Subscription ID>"
    $resource_group = "<Cluster resource group>"
    $mktplaceImage = "<Markeplace image name>"    
    
  3. Quite una imagen de máquina virtual existente. Ejecute el siguiente comando:

    az stack-hci-vm image delete --subscription $subscription --resource-group $resource_group --name $mktplaceImage --yes
    

Puede eliminar la imagen de dos maneras:

  • Especifique el nombre y el grupo de recursos.
  • Especifique el identificador.

Después de eliminar una imagen, puede comprobar que la imagen se quita. Esta es una salida de ejemplo cuando se eliminó la imagen especificando el nombre y el grupo de recursos.

PS C:\Users\azcli> $subscription = "<Subscription ID>"
PS C:\Users\azcli> $resource_group = "myhci-rg"
PS C:\Users\azcli> $mktplaceImage = "myhci-marketplaceimage"
PS C:\Users\azcli> az stack-hci-vm image delete --name $mktplaceImage --resource-group $resource_group
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
Are you sure you want to perform this operation? (y/n): y
PS C:\Users\azcli> az stack-hci-vm image show --name $mktplaceImage --resource-group $resource_group
Command group 'stack-hci-vm' is experimental and under development. Reference and support levels: https://aka.ms/CLI_refstatus
ResourceNotFound: The Resource 'Microsoft.AzureStackHCI/marketplacegalleryimages/myhci-marketplaceimage' under resource group 'myhci-rg' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix
PS C:\Users\azcli>

Pasos siguientes