Criar uma imagem de VM do Azure Stack HCI com imagens numa partilha local

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

Este artigo descreve como criar imagens de máquina virtual (VM) para o Azure Stack HCI com imagens de origem de uma partilha local no cluster. 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 Ponte 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 é apresentado como Ligado. Também deverá ver uma localização personalizada e uma Ponte de Recursos do Arc para o cluster.

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

  • Para imagens personalizadas numa partilha local no Azure Stack HCI, terá os seguintes pré-requisitos adicionais:

    • Deverá ter um VHD/VHDX carregado para uma partilha local no cluster do Azure Stack HCI.
    • A imagem VHDX tem de ter o tipo Gen 2 e o arranque seguro ativado.
    • A imagem VHDX tem de ser preparada com sysprep /generalize /shutdown /oobe. Para obter mais informações, veja Opções de linha de comandos do Sysprep.
    • A imagem deve residir num Volume Partilhado de Cluster disponível para todos os servidores no cluster. Os sistemas operativos Windows e Linux são suportados.

Adicionar imagem de VM a partir da imagem na partilha local

Pode criar uma imagem de VM a partir de uma imagem numa partilha local do cluster 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 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 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>"
    $location = "<Location for your Azure Stack HCI cluster>"
    $imageName = <VM image name>
    $imageSourcePath = <path to the source image>
    $osType = "<OS of source image>"
    

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

    Parâmetro Description
    subscription Grupo de recursos do cluster do Azure Stack HCI que associa a esta imagem.
    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.
    image-path Nome da imagem da VM criada a partir da imagem na sua partilha local.
    Nota: o Azure rejeita todos os nomes que contêm a palavra-chave Windows.
    name Caminho para a imagem da galeria de origem (apenas VHDX) no cluster. Por exemplo, C:\OSImages\winos.vhdx. Veja os pré-requisitos da imagem de origem.
    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> $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"
    

Criar imagem de VM a partir da imagem na partilha local

  1. Selecione uma localização personalizada para implementar a sua imagem de 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 HCI cluster>" --query id -o tsv)
    
  2. Crie a imagem da VM a partir de uma imagem especificada numa partilha local no cluster do 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
    
    

    É 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 na partilha local 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> 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>

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 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> 
      

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