Compartir a través de


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

Se aplica a: Azure Local 2311.2 y versiones posteriores

En este artículo se describe cómo crear máquinas virtuales locales de Azure habilitadas por Azure Arc 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 locales de Azure.

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:

    • Debería tener un disco duro virtual cargado en su cuenta de almacenamiento de Azure. Consulte cómo Cargar una imagen de disco duro virtual en la cuenta de Azure Storage.
    • Asegúrese de que está cargando el VHD o VHDX como imagen de blob de páginas en la cuenta de almacenamiento. Solo se admiten imágenes de blobs de páginas para crear imágenes de máquina virtual a través de la cuenta de almacenamiento.
    • Si usa un VHDX:
      • La imagen VHDX debe ser de tipo Gen 2 y el arranque seguro debe estar activado.
      • 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.

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 Azure Local.

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 una máquina en Azure Local.

  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, 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 Local>"
$osType = "<OS of source image>"
$imageName = "<VM image name>"
$imageSourcePath = '"<Blob SAS URL path to the source image in the storage account>"'

Nota:

Para $imageSourcePath, la cadena debe escaparse por comillas dobles y, después, encerrarse entre comillas simples: '""'.

Los parámetros se describen en la tabla siguiente:

Parámetro Descripción
subscription Suscripción para Azure Local que usted asocia con esta imagen.
resource_group Grupo de recursos para Azure Local que asocia con esta imagen.
location Ubicación de la instancia local de Azure. 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 de URL de SAS de Blob a la imagen de origen en la cuenta de almacenamiento. Para obtener instrucciones, consulte Generación de tokens de SAS.
Nota: La cadena de ruta de acceso debe escaparse usando comillas dobles y luego encerrarse entre comillas simples como sigue: '""'.
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 = "mylocal-rg"
PS C:\Users\azcli> $location = "eastus"
PS C:\Users\azcli> $osType = "Windows"
PS C:\Users\azcli> $imageName = "mylocal-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 de Azure Local. Obtenga el identificador de ubicación personalizado de Azure Local. Ejecute el siguiente comando:

    $customLocationID=(az customlocation show --resource-group $resource_group --name "<custom location name for your Azure Local>" --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 el indicador --storage-path-id, lo que aseguró que los datos de trabajo (incluida la máquina virtual, la imagen de máquina virtual, el disco de datos no del SO) se coloquen 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 "mylocal-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/mylocal-rg/providers/Microsoft.ExtendedLocation/customLocations/mylocal-cl",
    "type": "CustomLocation"
  },
  "id": "/subscriptions/<Subscription ID>/resourceGroups/mylocal-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-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/mylocal-rg/providers/Microsoft.AzureStackHCI/storagecontainers/mylocal-storagepath",
    "version": null
  },
  "resourceGroup": "mylocal-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>

Listar 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 Azure Local>"
    $resource_group = "<Resource group name for your Azure Local>"
    
  3. Enumere todas las imágenes de máquina virtual asociadas a Azure Local. Ejecute el siguiente comando:

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

    Según el comando usado, se mostrará un conjunto correspondiente de imágenes asociadas a Azure Local.

    • 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 VM de imágenes del mercado.
    • Imágenes personalizadas que residen en su cuenta de Azure Storage o están en un recurso compartido local en el sistema o en un cliente conectado al sistema.

Este es un ejemplo de resultado.

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": "mylocal-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 información adicional 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. Ejecute PowerShell como administrador.

  2. Establezca los parámetros siguientes.

    $subscription = "<Subscription ID>"
    $resource_group = "<Azure Local 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/mylocal-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/mylocal-cl",
          "type": "CustomLocation"
        },
        "id": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-marketplaceimage",
        "location": "eastus",
        "name": "mylocal-marketplaceimage",
        "properties": {
          "containerName": null,
          "hyperVGeneration": null,
          "identifier": null,
          "imagePath": null,
          "osType": "Windows",
          "provisioningState": "Succeeded",
          "status": null,
          "version": null
        },
        "resourceGroup": "mylocal-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. Ejecute PowerShell como administrador.

  2. Establezca los siguientes parámetros:

    $subscription = "<Subscription ID>"
    $resource_group = "<Azure Local 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 = "mylocal-rg"
PS C:\Users\azcli> $mktplaceImage = "mymylocal-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 'mylocal-rg' was not found. For more details please go to https://aka.ms/ARMResourceNotFoundFix
PS C:\Users\azcli>

Pasos siguientes