Compartilhar via


Criar imagem de VM local do Azure usando a imagem na conta de armazenamento do Azure

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

Este artigo descreve como criar imagens de VM (máquina virtual) para o Azure Local usando imagens de origem da conta de Armazenamento do Azure. 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 do Arc no Azure Local.

Pré-requisitos

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

  • Certifique-se de revisar e concluir os pré-requisitos.

  • Para imagens personalizadas na conta de Armazenamento do Azure, você tem os seguintes pré-requisitos extras:

    • Você deve ter um VHD carregado em sua conta de Armazenamento do Azure. Veja como carregar uma imagem VHD em sua conta de Armazenamento do Azure.
    • Verifique se você está carregando seu VHD ou VHDX como uma imagem de blob de páginas na conta de armazenamento. Há suporte apenas para imagens de blob de páginas para criar imagens de VM por meio da conta de armazenamento.
    • Se estiver usando um VHDX:
      • A imagem VHDX deve ser do tipo Gen 2 e a 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.

Adicionar imagem de VM da conta de Armazenamento do Azure

Você cria uma imagem de VM a partir de uma imagem na conta de Armazenamento do Azure e, em seguida, usa essa imagem para implantar VMs em seu Azure Local.

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

Entrar e definir assinatura

  1. Conecte-se a um computador em seu Azure Local.

  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, caminho para a imagem no compartilhamento local e tipo de sistema operacional para a imagem. Substitua os parâmetros pelos < > valores apropriados.
$subscription = "<Subscription ID>"
$resource_group = "<Resource group>"
$location = "<Location for your Azure Local>"
$osType = "<OS of source image>"
$imageName = "<VM image name>"
$imageSourcePath = "<path to the source image in the Storage account>"

Os parâmetros estão descritos na tabela a seguir:

Parâmetro Descrição
subscription Assinatura do Azure Local que você associa a essa imagem.
resource_group Grupo de recursos do Azure Local que você associa a essa imagem.
location Local da instância local do Azure. Por exemplo, poderia ser eastus.
imageName Nome da imagem da VM criada começando com a imagem em seu compartilhamento local.
Observação: o Azure rejeita todos os nomes que contêm a palavra-chave Windows.
imageSourcePath Caminho para a URL SAS do Blob da imagem na conta de armazenamento. Para obter mais informações, consulte instruções sobre como obter uma URL SAS de blob da imagem na conta de armazenamento.
Observação: certifique-se de que todos os E comerciais no caminho sejam escapados com aspas duplas e que toda a cadeia de caracteres do caminho esteja entre aspas simples.
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 = "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'

Criar imagem de VM a partir da imagem na conta de Armazenamento do Azure

  1. Selecione um local personalizado para implantar sua imagem de VM. O local personalizado deve corresponder ao local personalizado do Azure Local. Obtenha a ID de local personalizada para o Azure Local. Execute o comando a seguir:

    $customLocationID=(az customlocation show --resource-group $resource_group --name "<custom location name for your Azure Local>" --query id -o tsv)
    
  2. Crie a imagem da VM começando com uma imagem do marketplace especificada. Certifique-se de especificar a oferta, o editor, o SKU e a versão da imagem do 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
    

    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 isso garantiu que os dados da carga de trabalho (incluindo a VM, a imagem da VM, o disco de dados que não é do sistema operacional) fossem 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 na conta de Armazenamento do Azure e da largura de banda de rede disponível para o download.

Aqui está um exemplo de saída:

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 imagens de VM

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

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 Azure Local>"
    $resource_group = "<Resource group name for your Azure Local>"
    
  3. Liste todas as imagens de VM associadas ao Azure Local. 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 local do Azure é 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 em seu sistema ou em um cliente conectado ao seu sistema.

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": "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 obter mais informações sobre esse comando da CLI, consulte az stack-hci-vm image list.

Exibir propriedades de imagem de 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 as propriedades de uma imagem:

  1. Execute o PowerShell como administrador.

  2. Defina os seguintes parâmetros.

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

    1. Defina o seguinte parâmetro.

      $mktplaceImageID = "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-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/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> 
      

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 da VM.

  1. Execute o PowerShell como administrador.

  2. Defina os seguintes parâmetros:

    $subscription = "<Subscription ID>"
    $resource_group = "<Azure Local resource group>"
    $mktplaceImage = "<Markeplace 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 o ID.

Depois de excluir uma imagem, você pode verificar se a imagem foi 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 = "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>

Próximas etapas