Creación de una imagen de máquina virtual de Azure Stack HCI mediante imágenes en un recurso compartido local

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 un recurso compartido local en el clúster. Puede crear imágenes de máquina virtual mediante el 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.

  • Tiene acceso a un sistema de Azure Stack HCI que se implementa, tiene un puente de recursos de Arc y una ubicación personalizada.

    • Vaya a la página Servidor de información general > en el recurso del sistema de Azure Stack HCI. Compruebe que Azure Arc se muestra como Conectado. También debería ver una ubicación personalizada y un puente de recursos de Arc para el clúster.

      Captura de pantalla de la página Información general del recurso de clúster de Azure Stack HCI que muestra Azure Arc como conectado.

  • En el caso de imágenes personalizadas en un recurso compartido local en Azure Stack HCI, tendrá los siguientes requisitos previos adicionales:

    • Debe tener un VHD/VHDX cargado en un recurso compartido local en el clúster de Azure Stack HCI.
    • 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 línea de comandos de Sysprep.
    • La imagen debe residir en un volumen compartido de clúster disponible para todos los servidores del clúster. Se admiten los sistemas operativos Windows y Linux.

Adición de una imagen de máquina virtual a partir de una imagen en un recurso compartido local

Cree una imagen de máquina virtual a partir de una imagen en un recurso compartido local del clúster 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. Inicie 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, el tipo de sistema operativo para 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>"
    $imageName = <VM image name>
    $imageSourcePath = <path to the source image>
    $osType = "<OS of source image>"
    

    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.
    image-path 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.
    name Ruta de acceso a la imagen de la galería de origen (solo VHDX) en el clúster. Por ejemplo, C:\OSImages\winos.vhdx. Consulte los requisitos previos de la imagen de origen.
    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:\ClusterStorage\Volume1> $imageName = "myhci-localimage"
    PS C:\ClusterStorage\Volume1> $imageSourcePath = "C:\ClusterStorage\Volume1\Windows_K8s_17763.2928.220505-1621_202205101158.vhdx"
    

Creación de una imagen de máquina virtual a partir de una imagen en un recurso compartido local

  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 especificada en un recurso compartido local en el clúster de Azure Stack HCI.

    az stack-hci-vm image create --subscription $subscription --resource-group $resource_group --custom-location $customLocationID --location $location --image-path $ImageSourcePath --name $ImageName --os-type $osType --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 la 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 el recurso compartido local y del ancho de banda de red disponible para la descarga.

Este es una salida de ejemplo:

PS C:\Users\azcli> $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 --image-path $ImageSourcePath --name $ImageName --os-type $osType --storage-path-id $storagepathid
type="CustomLocation" --location $Location --name $mktplaceImage --os-type $osType --image-path $mktImageSourcePath
Command group 'azurestackhci' 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-localimage",
  "location": "eastus",
  "name": "myhci-localimage",
  "properties": {
    "identifier": null,
    "imagePath": null,
    "osType": "Windows",
    "provisioningState": "Succeeded",
    "status": {
      "downloadStatus": {},
      "progressPercentage": 100,
      "provisioningStatus": {
        "operationId": "82f58893-b252-43db-97a9-258f6f7831d9*43114797B86E6D2B28C4B52B02302C81C889DABDD9D890F993665E223A5947C3",
        "status": "Succeeded"
      }
    },
    "storagepathId": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/storagecontainers/myhci-storagepath",
    "version": {
      "name": null,
      "properties": {
        "storageProfile": {
          "osDiskImage": {}
        }
      }
    }
  },
  "resourceGroup": "myhci-rg",
  "systemData": {
    "createdAt": "2023-11-02T06:15:10.450908+00:00",
    "createdBy": "guspinto@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2023-11-02T06:15:56.689323+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. Ejecute 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 de imágenes correspondiente asociado al clúster de Azure Stack HCI.

    • Si especifica solo la suscripción, el comando enumera todas las imágenes de la suscripción.
    • Si especifica la suscripción y el grupo de recursos, el comando enumera 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>

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. Ejecute 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: especifique el identificador o especifique 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 desee 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. Ejecute PowerShell como administrador.

  2. Establezca los parámetros siguientes.

    $subscription = "<Subscription ID>"
    $resource_group = "<Cluster resource group>"
    $galleryImageName = "<Gallery 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 ha quitado. 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