Criar uma imagem de VM do Azure Stack HCI usando imagens em um compartilhamento local

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

Este artigo descreve como criar imagens de VM (máquina virtual) para o Azure Stack HCI usando imagens de origem de um compartilhamento local em seu cluster. Você pode criar imagens de VM usando o portal do Azure ou a CLI do Azure e, em seguida, usar essas imagens de VM para criar VMs arc no Azure Stack HCI.

Pré-requisitos

Antes de começar, verifique se os pré-requisitos a seguir estão concluídos.

  • Examine e Conclua os pré-requisitos.

  • Você tem acesso a um sistema Azure Stack HCI implantado, tem uma Ponte de Recursos do Arc e um local personalizado.

    • Vá para a página De visão geral > do servidor no recurso do sistema Azure Stack HCI. Verifique se o Azure Arc aparece como Conectado. Você também deve ver um local personalizado e uma Ponte de Recursos do Arc para seu cluster.

      Captura de tela da página Visão geral no recurso de cluster do Azure Stack HCI mostrando o Azure Arc como conectado.

  • Para imagens personalizadas em um compartilhamento local no Azure Stack HCI, você terá os seguintes pré-requisitos extras:

    • Você deve ter um VHD/VHDX carregado em um compartilhamento local no cluster do Azure Stack HCI.
    • A imagem VHDX deve ser do tipo Gen 2 e de inicialização segura habilitada.
    • A imagem VHDX deve ser preparada usando sysprep /generalize /shutdown /oobe. Para obter mais informações, consulte Opções de linha de comando do Sysprep.
    • A imagem deve residir em um volume compartilhado de cluster disponível para todos os servidores no cluster. Há suporte para os sistemas operacionais Windows e Linux.

Adicionar imagem de VM da imagem no compartilhamento local

Você cria uma imagem de VM a partir de uma imagem em um compartilhamento local do cluster e, em seguida, usa essa imagem para implantar VMs no cluster do Azure Stack HCI.

Siga estas etapas para criar uma imagem de VM usando a CLI do Azure.

Entrar e definir assinatura

  1. Conecte-se a um servidor em seu sistema Azure Stack HCI.

  2. Entrar. Tipo:

    az login --use-device-code
    
  3. Defina sua assinatura.

    az account set --subscription <Subscription ID>
    

Defina alguns parâmetros

  1. Defina sua assinatura, grupo de recursos, local, tipo de sistema operacional para a imagem. Substitua os parâmetros em < > pelos valores apropriados.

    $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 tabela a seguir:

    Parâmetro Descrição
    subscription Grupo de recursos para o cluster do Azure Stack HCI associado a essa imagem.
    resource_group Grupo de recursos para o cluster do Azure Stack HCI associado a essa imagem.
    location Local do cluster do Azure Stack HCI. Por exemplo, isso pode ser eastus.
    image-path Nome da imagem de VM criada começando com a imagem no compartilhamento local.
    Observação: o Azure rejeita todos os nomes que contêm o palavra-chave Windows.
    name Caminho para a imagem da galeria de origem (somente VHDX) no cluster. Por exemplo, C:\OSImages\winos.vhdx. Consulte os pré-requisitos da imagem de origem.
    os-type Sistema operacional associado à imagem de origem. Pode ser Windows ou Linux.

    Aqui está um exemplo de saída:

    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 com base na imagem no compartilhamento local

  1. Selecione um local personalizado para implantar sua imagem de VM. O local personalizado deve corresponder ao local personalizado do cluster do Azure Stack HCI. Obtenha a ID de localização personalizada para o cluster do Azure Stack HCI. Execute o comando a seguir:

    $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 começando com uma imagem especificada em um compartilhamento 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
    
    

    Um trabalho de implantação é iniciado para a imagem da VM.

    Neste exemplo, o caminho de armazenamento foi especificado usando 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 sos) sejam colocados no caminho de armazenamento especificado.

    Se o sinalizador não for especificado, os dados da carga de trabalho serão colocados automaticamente em um caminho de armazenamento de alta disponibilidade.

A implantação da imagem leva alguns minutos para ser concluída. O tempo necessário para baixar a imagem depende do tamanho da imagem no compartilhamento local e da largura de banda de rede disponível para o download.

Aqui está um exemplo de saída:

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

Você precisa exibir a lista de imagens de VM para escolher uma imagem a ser gerenciada.

Siga estas etapas para listar a imagem da VM usando a CLI do Azure.

  1. Execute o PowerShell como 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 comando a seguir:

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

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

    • Se você especificar apenas a assinatura, o comando listará todas as imagens na assinatura.
    • Se você especificar a assinatura e o grupo de recursos, o comando listará todas as imagens no grupo de recursos.

    Essas imagens incluem:

    • Imagens de VM de imagens do marketplace.
    • Imagens personalizadas que residem em sua conta de Armazenamento do Azure ou estão em um compartilhamento local no cluster ou em um cliente conectado ao cluster.

Aqui está um exemplo de saída.

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>

Exibir propriedades da imagem da VM

Talvez você queira exibir as propriedades das imagens de VM antes de usar a imagem para criar uma VM. Siga estas etapas para exibir as propriedades da imagem:

Siga estas etapas para usar a CLI do Azure para exibir propriedades de uma imagem:

  1. Execute o PowerShell como administrador.

  2. Defina os parâmetros a seguir.

    $subscription = "<Subscription ID>"
    $resource_group = "<Cluster resource group>"
    $mktplaceImage = "<Marketplace image name>"
    
  3. Você pode exibir propriedades de imagem de duas maneiras diferentes: especificar ID ou especificar nome e grupo de recursos. Execute as seguintes etapas ao especificar a ID de imagem do Marketplace:

    1. Defina o parâmetro a seguir.

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

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

      Aqui está um exemplo de saída 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> 
      

Excluir imagem da VM

Talvez você queira excluir uma imagem de VM se o download falhar por algum motivo ou se a imagem não for mais necessária. Siga estas etapas para excluir as imagens de VM.

  1. Execute o PowerShell como administrador.

  2. Defina os parâmetros a seguir.

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

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

Você pode excluir a imagem de duas maneiras:

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

Depois de excluir uma imagem, você pode marcar que a imagem seja removida. Aqui está um exemplo de saída quando a imagem foi excluída especificando 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>

Próximas etapas