Criar imagem de VM Local do Azure usando imagens em um compartilhamento local
Aplica-se a: Azure Local, versão 23H2
Este artigo descreve como criar imagens de máquina virtual (VM) para o Azure Local usando imagens de origem de um compartilhamento local. 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 preencher os pré-requisitos.
Para imagens personalizadas em um compartilhamento local em seu Azure Local, você terá os seguintes pré-requisitos extras:
- Você deve ter um VHD/VHDX carregado para um compartilhamento local em seu sistema.
- A imagem VHDX deve ser do tipo Gen 2 e 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 Sysprep. - A imagem deve residir em um volume compartilhado de cluster disponível para todas as máquinas na instância. Os sistemas operacionais Windows e Linux são suportados.
- Se estiver usando um cliente para se conectar à sua instância Local do Azure, consulte Conectar-se ao Azure Local por meio do cliente CLI do Azure.
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 seu sistema 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.
Iniciar sessão e definir subscrição
Conecte-se a uma máquina em seu Azure Local.
Inicie sessão. Tipo:
az login --use-device-code
Defina a sua subscrição.
az account set --subscription <Subscription ID>
Definir alguns parâmetros
Defina a sua subscrição, grupo de recursos, localização, tipo de SO para a imagem. Substitua os parâmetros pelos
< >
valores apropriados.$subscription = "<Subscription ID>" $resource_group = "<Resource group>" $location = "<Location for your Azure Local>" $imageName = <VM image name> $imageSourcePath = <path to the source image> $osType = "<OS of source image>"
Os parâmetros são descritos na tabela a seguir:
Parâmetro Description subscription
Grupo de subscrição do Azure Local que associa a esta imagem. resource_group
Grupo de recursos para o Azure Local que você associa a esta imagem. location
Localização do seu Azure Local. Por exemplo, poderia ser eastus
.image-path
Nome da imagem da VM criada a partir da imagem em seu compartilhamento local.
Observação: o Azure rejeita todos os nomes que contêm a palavra-chave Windows.name
Caminho para a imagem da galeria de origem (somente VHDX) no seu sistema. 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 = "mylocalrg" PS C:\Users\azcli> $location = "eastus" PS C:\Users\azcli> $osType = "Windows" PS C:\ClusterStorage\Volume1> $imageName = "mylocal-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 em compartilhamento local
Selecione um local personalizado para implantar sua imagem de VM. O local personalizado deve corresponder ao local personalizado do seu Azure Local. Obtenha a ID de local personalizada para seu Azure Local. Execute o seguinte comando:
$customLocationID=(az customlocation show --resource-group $resource_group --name "<custom location name for system>" --query id -o tsv)
Crie a imagem da VM começando com uma imagem especificada em um compartilhamento local em seu Azure Local.
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 isso garantiu que os dados da carga de trabalho (incluindo a VM, a imagem da VM, o disco de dados que não fosse 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 automaticamente colocados 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/mylocal-rg/providers/Microsoft.ExtendedLocation/customLocations/mylocal-cl",
"type": "CustomLocation"
},
"id": "/subscriptions/<Subscription ID>/resourceGroups/mylocal-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-localimage",
"location": "eastus",
"name": "mylocal-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 para gerenciar.
Siga estas etapas para listar a imagem da VM usando a CLI do Azure.
Execute o PowerShell como um administrador.
Defina alguns parâmetros.
$subscription = "<Subscription ID associated with your Azure Local>" $resource_group = "<Resource group name for your Azure Local>"
Liste todas as imagens de VM associadas ao seu Azure Local. Execute o seguinte comando:
az stack-hci-vm image list --subscription $subscription --resource-group $resource_group
Dependendo do comando usado, um conjunto correspondente de imagens associadas ao seu Azure Local é 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.
Estas imagens incluem:
- Imagens de VM de imagens de marketplace.
- Imagens personalizadas que residem na sua conta de Armazenamento do Azure ou que estão numa partilha local no seu sistema ou num cliente ligado 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 da imagem da VM
Talvez você queira exibir as propriedades das imagens da VM antes de usá-la 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:
Execute o PowerShell como um administrador.
Defina os seguintes parâmetros.
$subscription = "<Subscription ID>" $resource_group = "<Azure Local resource group>" $mktplaceImage = "<Marketplace image name>"
Você pode exibir as propriedades da imagem de duas maneiras diferentes: especificar ID ou especificar nome e grupo de recursos. Siga as seguintes etapas ao especificar o ID da imagem do Marketplace:
Defina o seguinte parâmetro.
$mktplaceImageID = "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-marketplaceimage"
Execute o seguinte comando para exibir as propriedades.
az stack-hci-vm image show --ids $mktplaceImageID
Aqui está uma saída 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/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.
Execute o PowerShell como um administrador.
Defina os seguintes parâmetros:
$subscription = "<Subscription ID>" $resource_group = "<Azure Local resource group>" $mktplaceImage = "<Markeplace image name>"
Remova uma imagem de VM existente. Execute o seguinte comando:
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 ela foi removida. Aqui está uma saída de exemplo 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>