Criar uma imagem de VM do Azure Stack HCI com imagens Azure Marketplace

Aplica-se a: Azure Stack HCI, versão 23H2

Este artigo descreve como criar imagens de máquinas virtuais (VMs) para o Azure Stack HCI com imagens de origem do Azure Marketplace. Pode criar imagens de VM com o portal do Azure ou a CLI do Azure e, em seguida, utilizar estas imagens de VM para criar VMs do Arc no Azure Stack HCI.

Pré-requisitos

Antes de começar, certifique-se de que os seguintes pré-requisitos estão concluídos.

  • Certifique-se de que revê e Conclui os pré-requisitos.

  • Tem acesso a um sistema do Azure Stack HCI implementado, tem uma Bridge de Recursos do Arc e uma localização personalizada.

    • Aceda à página Servidor de Descrição Geral > no recurso do sistema do Azure Stack HCI. Verifique se o Azure Arc aparece como Ligado. Também deverá ver uma localização personalizada e uma Bridge de Recursos do Arc para o cluster.

      Captura de ecrã da página Descrição geral no recurso do cluster do Azure Stack HCI a mostrar o Azure Arc como ligado.

Adicionar imagem de VM a partir de Azure Marketplace

Pode criar uma imagem de VM a partir de uma imagem de Azure Marketplace e, em seguida, utilizar esta imagem para implementar VMs no cluster do Azure Stack HCI.

Siga estes passos para criar uma imagem de VM com a CLI do Azure.

Iniciar sessão e definir a subscrição

  1. Ligue-se a um servidor no seu sistema do Azure Stack HCI.

  2. Inicie sessão. Escreva:

    az login --use-device-code
    
  3. Defina a sua subscrição.

    az account set --subscription <Subscription ID>
    

Definir alguns parâmetros

  1. Defina parâmetros para a sua subscrição, grupo de recursos, localização, tipo de SO para a imagem. Substitua os parâmetros em < > pelos valores adequados.

    $subscription = "<Subscription ID>"
    $resource_group = "<Resource group>"
    $customLocationName = "<Custom location name>"
    $customLocationID
    /subscriptions/<Subscription ID>/resourcegroups/$resource_group/providers/microsoft.extendedlocation/customlocations/$customLocationName
    $location = "<Location for your Azure Stack HCI cluster>"
    $osType = "<OS of source image>"
    

    Os parâmetros são descritos na seguinte tabela:

    Parâmetro Description
    subscription Subscrição associada ao cluster do Azure Stack HCI.
    resource-group Grupo de recursos do cluster do Azure Stack HCI que associa a esta imagem.
    location Localização do cluster do Azure Stack HCI. Por exemplo, pode ser eastus.
    os-type Sistema operativo associado à imagem de origem. Isto pode ser Windows ou Linux.

    Veja a seguir uma saída de exemplo:

    PS C:\Users\azcli> $subscription = "<Subscription ID>"
    PS C:\Users\azcli> $resource_group = "myhci-rg"
    PS C:\Users\azcli> $customLocationName = "myhci-cl"
    PS C:\Users\azcli> $location = "eastus"
    PS C:\Users\azcli> $ostype = "Windows"
    

Criar imagem de VM a partir da imagem do marketplace

  1. Selecione uma localização personalizada para implementar a imagem da VM. A localização personalizada deve corresponder à localização personalizada do cluster do Azure Stack HCI. Obtenha o ID de localização personalizada para o cluster do Azure Stack HCI. Execute o seguinte comando:

    $customLocationID=(az customlocation show --resource-group $resource_group --name "<custom location name for Azure Stack HCI cluster>" --query id -o tsv)
    
  2. Crie a imagem da VM a partir de uma imagem do marketplace especificada. Certifique-se de que especifica a oferta, o publicador, o SKU e a versão da imagem do marketplace. Utilize a tabela seguinte para encontrar as imagens do marketplace disponíveis e os respetivos valores de atributo:

    Name Publisher Oferta SKU Número da versão
    Windows 11 Enterprise várias sessões + Microsoft 365 Apps, versão 21H2- Gen2 microsoftwindowsdesktop office-365 win10-21h2-avd-m365-g2 19044.3570.231010
    Windows 10 Enterprise várias sessões, versão 21H2 + Microsoft 365 Apps- Gen2 microsoftwindowsdesktop office-365 win11-21h2-avd-m365 22000.2538.231010
    Windows 10 Enterprise várias sessões, versão 21H2 - Gen2 microsoftwindowsdesktop windows-10 win10-21h2-avd-g2 19044.3570.231001
    Windows 11 Enterprise várias sessões, versão 21H2 - Gen2 microsoftwindowsdesktop windows-11 win11-21h2-avd 22000.2538.231001
    Windows 11 Enterprise várias sessões, versão 22H2 - Gen2 microsoftwindowsdesktop windows-11 win11-22h2-avd 22621.2428.231001
    Windows 11, versão 22H2 Enterprise multi-session + Microsoft 365 Apps (Pré-visualização) - Gen2 microsoftwindowsdesktop windows11preview win11-22h2-avd-m365 22621.382.220810
    Windows Server 2022 Datacenter: Edição do Azure - Gen2 microsoftwindowsserver windowsserver 2022-datacenter-azure-edition 20348.2031.231006
    Windows Server 2022 Datacenter: Azure Edition Core - Gen2 microsoftwindowsserver windowsserver 2022-datacenter-azure-edition-core 20348.2031.231006
    Windows Server 2022 Datacenter: Azure Edition Hotpatch - Gen2 microsoftwindowsserver windowsserver 2022-datacenter-azure-edition-hotpatch 20348.2031.231006
    az stack-hci-vm image create --subscription $subscription --resource-group $resource_group --custom-location $customLocationID --location $location --name "<VM image name>" --os-type $ostype --offer "windowsserver" --publisher "<Publisher name>" --sku "<SKU>" --version "<Version number>" --storage-path-id $storagepathid
    

    É iniciada uma tarefa de implementação para a imagem da VM.

    Neste exemplo, o caminho de armazenamento foi especificado com o --storage-path-id sinalizador e que garantiu que os dados da carga de trabalho (incluindo a VM, a imagem da VM, o disco de dados não SO) são colocados no caminho de armazenamento especificado.

    Se o sinalizador não for especificado, os dados da carga de trabalho são colocados automaticamente num caminho de armazenamento de elevada disponibilidade.

A implementação da imagem demora alguns minutos a concluir. O tempo necessário para transferir a imagem depende do tamanho da imagem do Marketplace e da largura de banda de rede disponível para a transferência.

Veja a seguir uma saída de exemplo:

PS C:\Users\azcli> $customLocationID=(az customlocation show --resource-group $resource_group --name "myhci-cl" --query id -o tsv)
PS C:\Users\azcli> $customLocationID
/subscriptions/<Subscription ID>/resourcegroups/myhci-rg/providers/microsoft.extendedlocation/customlocations/myhci-cl
PS C:\Users\azcli> az stack-hci-vm image create --subscription $subscription --resource-group $resource_group --custom-location $customLocationID --location $location --name "myhci-marketplaceimage" --os-type $ostype --offer "windowsserver" --publisher "microsoftwindowsserver" --sku "2022-datacenter-azure-edition-core" --version "20348.2031.231006" --storage-path-id $storagepathid
{
  "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/myhci-marketplaceimage",
  "location": "eastus",
  "name": "myhci-marketplaceimage",
  "properties": {
    "identifier": {
      "offer": "windowsserver",
      "publisher": "microsoftwindowsserver",
      "sku": "2022-datacenter-azure-edition-core"
    },
    "imagePath": null,
    "osType": "Windows",
    "provisioningState": "Succeeded",
    "status": {
      "downloadStatus": {
        "downloadSizeInMB": 6750
      },
      "progressPercentage": 98,
      "provisioningStatus": {
        "operationId": "13be90e0-a780-45bf-a84a-ae91b6e5e468*A380D53083FF6B0A3A157ED7DFD00D33F6B3D40D5559D11AEAED6AD68F7F1A4A",
        "status": "Succeeded"
      }
    },
    "storagepathId": "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/storagecontainers/myhci-storagepath",
    "version": {
      "name": "20348.2031.231006",
      "properties": {
        "storageProfile": {
          "osDiskImage": {
            "sizeInMB": 130050
          }
        }
      }
    }
  },
  "resourceGroup": "myhci-rg",
  "systemData": {
    "createdAt": "2023-10-27T21:43:15.920502+00:00",
    "createdBy": "guspinto@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2023-10-27T22:06:15.092321+00:00",
    "lastModifiedBy": "319f651f-7ddb-4fc6-9857-7aef9250bd05",
    "lastModifiedByType": "Application"
  },
  "tags": null,
  "type": "microsoft.azurestackhci/marketplacegalleryimages"
}

PS C:\Users\azcli>

Listar imagens de VM

Tem de ver a lista de imagens de VM para escolher uma imagem para gerir.

Siga estes passos para listar a imagem da VM com a CLI do Azure.

  1. Execute o PowerShell como um administrador.

  2. Defina alguns parâmetros.

    $subscription = "<Subscription ID associated with your cluster>"
    $resource_group = "<Resource group name for your cluster>"
    
  3. Liste todas as imagens de VM associadas ao cluster. Execute o seguinte comando:

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

    Dependendo do comando utilizado, é listado um conjunto correspondente de imagens associadas ao cluster do Azure Stack HCI.

    • Se especificar apenas a subscrição, o comando lista todas as imagens na subscrição.
    • Se especificar a subscrição e o grupo de recursos, o comando lista todas as imagens no grupo de recursos.

    Estas imagens incluem:

    • Imagens de VM a partir de imagens do marketplace.
    • Imagens personalizadas que residem na sua conta de Armazenamento do Azure ou que estão numa partilha local no cluster ou num cliente ligado ao cluster.

Eis um resultado de exemplo.

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>

Ver propriedades da imagem da VM

Poderá querer ver as propriedades das imagens da VM antes de utilizar a imagem para criar uma VM. Siga estes passos para ver as propriedades da imagem:

Siga estes passos para utilizar a CLI do Azure para ver as propriedades de uma imagem:

  1. Execute o PowerShell como um administrador.

  2. Defina os seguintes parâmetros.

    $subscription = "<Subscription ID>"
    $resource_group = "<Cluster resource group>"
    $mktplaceImage = "<Marketplace image name>"
    
  3. Pode ver as propriedades da imagem de duas formas diferentes: especificar o ID ou especificar o nome e o grupo de recursos. Siga os seguintes passos ao especificar o ID de imagem do Marketplace:

    1. Defina o parâmetro seguinte.

      $mktplaceImageID = "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/myhci-marketplaceimage"
      
    2. Execute o seguinte comando para ver as propriedades.

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

      Eis um resultado de exemplo 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> 
      

Atualizar imagem da VM

Quando uma nova imagem atualizada está disponível no Azure Marketplace, as imagens da VM no cluster do Azure Stack HCI ficam obsoletos e devem ser atualizadas. A operação de atualização não é uma atualização no local da imagem. Em vez disso, pode ver quais as imagens de VM que uma imagem atualizada está disponível e selecionar imagens a atualizar. Depois de atualizar, a operação criar imagem de VM utiliza a nova imagem atualizada.

Para atualizar uma imagem de VM, utilize os seguintes passos no portal do Azure.

  1. Para ver se está disponível uma atualização, selecione uma imagem de VM na vista de lista.

    Captura de ecrã a mostrar que está disponível uma atualização da imagem da VM para transferência.

    No painel Descrição geral , verá uma faixa que mostra a nova imagem da VM disponível para transferência, se estiver disponível. Para atualizar para a nova imagem, selecione o ícone de seta.

    Captura de ecrã a mostrar uma nova imagem de VM disponível para transferência nos detalhes da imagem da VM.

  2. Reveja os detalhes da imagem e, em seguida, selecione Rever e criar. Por predefinição, a nova imagem utiliza o mesmo grupo de recursos e detalhes da instância que a imagem anterior.

    O nome da nova imagem é incrementado com base no nome da imagem anterior. Por exemplo, uma imagem existente com o nome winServer2022-01 terá uma imagem atualizada com o nome winServer2022-02.

    Captura de ecrã a mostrar a caixa de diálogo Rever e criar para uma nova imagem de VM.

  3. Para concluir a operação, selecione Criar.

    Captura de ecrã a mostrar a caixa de diálogo Criar imagem para uma nova imagem de VM.

    Após a criação da nova imagem de VM, crie uma VM com a nova imagem e verifique se a VM funciona corretamente. Após a verificação, pode eliminar a imagem de VM antiga.

    Nota

    Nesta versão, não pode eliminar uma imagem de VM se a VM associada a essa imagem estiver em execução. Pare a VM e, em seguida, elimine a imagem da VM.

Eliminar imagem de VM

Poderá querer eliminar uma imagem de VM se a transferência falhar por algum motivo ou se a imagem já não for necessária. Siga estes passos para eliminar as imagens da VM.

  1. Execute o PowerShell como um administrador.

  2. Defina os seguintes parâmetros.

    $subscription = "<Subscription ID>"
    $resource_group = "<Cluster resource group>"
    $galleryImageName = "<Gallery image name>"    
    
  3. Remover uma imagem de VM existente. Execute o seguinte comando:

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

Pode eliminar a imagem de duas formas:

  • Especifique o nome e o grupo de recursos.
  • Especifique o ID.

Depois de eliminar uma imagem, pode verificar se a imagem foi removida. Eis um resultado de exemplo quando a imagem foi eliminada ao especificar o nome e o 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>

Passos seguintes