使用Azure 市场映像创建 Azure 本地 VM 映像
适用于:Azure 本地版本 23H2
本文介绍如何使用Azure 市场中的源映像为 Azure 本地创建虚拟机(VM)映像。 可以使用 Azure 门户 或 Azure CLI 创建 VM 映像,然后使用这些 VM 映像在本地创建 Arc VM。
重要
执行其他验证时,最新的更新可能需要一些时间才能反映 VM 映像。
先决条件
在开始之前,请确保满足以下先决条件。
从 Azure 市场添加 VM 映像
从Azure 市场映像开始创建 VM 映像,然后使用此映像在 Azure 本地实例上部署 VM。
按照以下步骤使用 Azure CLI 创建 VM 映像。
登录并设置订阅
登录。 键入:
az login --use-device-code
设置订阅。
az account set --subscription <Subscription ID>
设置一些参数
为映像的订阅、资源组、位置和 OS 类型设置参数。 请将
< >
中的参数替换为适当的值。$subscription = "<Subscription ID>" $resource_group = "<Resource group>" $mktplaceImage = "<Marketplace image name>" $customLocationName = "<Custom location name>" $customLocationID = (az customlocation show --resource-group $resource_group --name "<custom_location_name_for_Azure_Local>" --query id -o tsv) $location = "<Location for your Azure Local>" $osType = "<OS of source image>"
下表介绍了这些参数:
参数 说明 subscription
与 Azure 本地关联的订阅。 resource-group
与此映像关联的 Azure 本地的资源组。 name
Azure Local 的市场映像的名称。 customLocation
Azure 本地的自定义位置的资源 ID。 location
Azure 本地位置。 例如,它可以是 eastus
。os-type
与源映像关联的操作系统。 这可以是 Windows 或 Linux。 下面是示例输出:
PS C:\Users\azcli> $subscription = "<Subscription ID>" PS C:\Users\azcli> $resource_group = "mylocal-rg" PS C:\Users\azcli> $mktplaceImage= "mylocal-marketplaceimage" PS C:\Users\azcli> $customLocationName = "mylocal-cl" PS C:\Users\azcli> $customerLocationID /subscriptions$subscription/resourcegroups/$resource_group/providers/microsoft.extendedlocation/customlocations/$customLocationName PS C:\Users\azcli> $location = "eastus" PS C:\Users\azcli> $ostype = "Windows"
从市场映像创建 VM 映像
设置用于指定要创建的预期 VM 映像的其他参数。 需要包括市场映像的产品/服务、发布者、SKU 和版本。 将参数 <> 替换为相应的值:
$publisher = "<Publisher name>" $offer = "<OS offer>" $sku = "<Image SKU>"
使用下表查找可用的市场映像及其属性值:
名称 Publisher 产品 SKU Windows 11 企业版多会话 + Microsoft 365 microsoftwindowsdesktop office-365 win11-21h2-avd-m365
win11-23h2-avd-m365Windows 10 企业版多会话 + Microsoft 365 microsoftwindowsdesktop office-365 win10-21h2-avd-m365
win10-22h2-avd-m365Windows 11 专业版 microsoftwindowsdesktop windows-11 win11-21h2-pro
win11-22h2-pro
win11-23h2-proWindows 11 企业版 microsoftwindowsdesktop windows-11 win11-21h2-ent
win11-22h2-ent
win11-23h2-entWindows 11 企业版多会话 microsoftwindowsdesktop windows-11 win11-21h2-avd
win11-22h2-avd
win11-23h2-avdWindows 10 专业版 microsoftwindowsdesktop windows-10 win10-22h2-pro-g2 Windows 10 企业版 microsoftwindowsdesktop windows-10 win10-22h2-ent-g2 Windows 10 企业版多会话 microsoftwindowsdesktop windows-10 win10-22h2-avd Windows Server 2022 Datacenter:Azure Edition microsoftwindowsserver windowsserver 2022-datacenter-azure-edition-hotpatch
2022-datacenter-azure-edition-core
2022-datacenter-azure-editionWindows Server 2019 microsoftwindowsserver windowsserver 2019-datacenter-gensecond
2019-datacenter-core-g2Windows Server 2022 上的 SQL Server 2022 Enterprise microsoftsqlserver sql2022-ws2022 enterprise-gen2
standard-gen2如果想要创建 Windows Server 2019 Datacenter 映像,则具有以下参数:
$publisher = "microsoftwindowsserver" $offer = "windowsserver" $sku = "2019-datacenter-gensecond"
从指定的市场映像开始创建 VM 映像:
az stack-hci-vm image create --resource-group $resource_group --custom-location $customLocationID --name $mktplaceImage --os-type $ostype --offer $offer --publisher $publisher --sku $sku
下面是示例输出:
PS C:\Users\azcli> az stack-hci-vm image create --custom-location $cl --name $mktplaceImage --os-type $ostype --resource-group $rg --publisher $publisher --offer $offer --sku $sku
{
"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/marketplacegalleryimages/myhci-marketplaceimage",
\
"location": "eastus",
"name": "myhci-marketplaceimage",
"properties": {
"cloudInitDataSource": null,
"containerId": null,
"hyperVGeneration": null,
"identifier": {
"offer": "windowsserver",
"publisher": "microsoftwindowsserver",
"sku": "2019-datacenter-gensecond"
},
"osType": "Windows",
"provisioningState": "Succeeded",
"status": {
"downloadStatus": {
"downloadSizeInMb": 10832
},
"errorCode": "",
"errorMessage": "",
"progressPercentage": 100,
"provisioningStatus": {
"operationId": "13efc468-7473-429f-911b-858c1e6fc1d5*B11A62EE76B08EF194F8293CDD40F7BC71BFB93255D5A99DD11B4167690752D9",
"status": "Succeeded"
}
},
"version": {
"name": "17763.6293.240905",
"properties": {
"storageProfile": {
"osDiskImage": {
"sizeInMb": 130050
}
}
}
}
},
"resourceGroup": "mylocal-rg",
"systemData": {
"createdAt": "2024-09-23T18:53:13.734389+00:00",
"createdBy": "guspinto@contoso.com",
"createdByType": "User",
"lastModifiedAt": "2024-09-23T19:06:07.532276+00:00",
"lastModifiedBy": "319f651f-7ddb-4fc6-9857-7aef9250bd05",
"lastModifiedByType": "Application"
},
"tags": null,
"type": "microsoft.azurestackhci/marketplacegalleryimages"
}
有关此 CLI 命令的详细信息,请参阅 az stack-hci-vm 映像。
列出 VM 映像
需要查看 VM 映像列表才能选择要管理的映像。
按照以下步骤使用 Azure CLI 列出 VM 映像。
以管理员身份运行 PowerShell。
设置一些参数。
$subscription = "<Subscription ID associated with your Azure Local>" $resource_group = "<Resource group name for your Azure Local>"
列出与 Azure 本地关联的所有 VM 映像。 运行下面的命令:
az stack-hci-vm image list --subscription $subscription --resource-group $resource_group
根据所使用的命令,会列出与 Azure Local 关联的相应映像集。
- 如果你仅指定订阅,则该命令会列出该订阅中的所有映像。
- 如果你同时指定订阅和资源组,则该命令会列出该资源组中的所有映像。
这些映像包括:
- 市场映像中的 VM 映像。
- 驻留在Azure 存储帐户中的自定义映像,或者位于系统或连接到系统的客户端的本地共享中。
下面是示例输出。
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>
有关此 CLI 命令的详细信息,请参阅 az stack-hci-vm image list。
查看 VM 映像属性
在使用该映像创建 VM 之前,可能需要先查看 VM 映像的属性。 按照以下步骤查看映像属性:
按照以下步骤使用 Azure CLI 查看映像的属性:
以管理员身份运行 PowerShell。
设置以下参数。
$subscription = "<Subscription ID>" $resource_group = "<Azure Local resource group>" $mktplaceImage = "<Marketplace image name>"
可以通过两种不同的方式查看映像属性:指定 ID,或指定名称和资源组。 指定市场映像 ID 时,请执行以下步骤:
设置以下参数。
$mktplaceImageID = "/subscriptions/<Subscription ID>/resourceGroups/myhci-rg/providers/Microsoft.AzureStackHCI/galleryimages/mylocal-marketplaceimage"
运行以下命令以查看属性。
az stack-hci-vm image show --ids $mktplaceImageID
下面是此命令的示例输出:
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>
更新 VM 映像
Azure 市场中提供了新的更新映像时,Azure 本地上的 VM 映像会过时,应更新。 更新操作不是映像的就地更新。 相反,可以查看已更新映像可用于哪些 VM 映像,并选择要更新的映像。 更新后,创建 VM 映像操作将使用新的已更新映像。
若要更新 VM 映像,请在 Azure 门户中使用以下步骤。
要查看更新是否可用,请从列表视图中选择 VM 映像。
在“概览”边栏选项卡中,会看到横幅,显示可供下载的新 VM 映像(如果有)。 要更新到新映像,请选择箭头图标。
查看映像详细信息,然后选择“查看并创建”。 默认情况下,新映像使用与前一个映像相同的资源组和实例详细信息。
新图像的名称将根据上一个图像的名称递增。 例如,名为 winServer2022-01 的现有映像将具有名为 winServer2022-02 的更新映像。
要完成操作,请选择“创建”。
创建新虚拟机映像后,使用新映像创建虚拟机,并验证虚拟机是否正常工作。 验证后,可以删除旧 VM 映像。
注意
在本版本中,如果与 VM 映像关联的 VM 正在运行,则不能删除该映像。 停止 VM,然后删除 VM 映像。
删除 VM 映像
如果下载因某种原因或不再需要映像,可能需要删除 VM 映像。 按照以下步骤删除 VM 映像。
以管理员身份运行 PowerShell。
设置以下参数:
$subscription = "<Subscription ID>" $resource_group = "<Azure Local resource group>" $mktplaceImage = "<Markeplace image name>"
删除现有的 VM 映像。 运行以下命令:
az stack-hci-vm image delete --subscription $subscription --resource-group $resource_group --name $mktplaceImage --yes
可以通过两种方式删除映像:
- 指定名称和资源组。
- 指定 ID。
删除某个映像后,可以检查该映像是否已删除。 下面是通过指定名称和资源组删除映像后的示例输出。
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>