你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 Azure CLI 查找 Azure 市场映像信息
注意
本文引用了 CentOS,这是一个处于生命周期结束 (EOL) 状态的 Linux 发行版。 请相应地考虑你的使用和规划。 有关详细信息,请参阅 CentOS 生命周期结束指南。
适用于:✔️ Linux VM ✔️ Windows VM ✔️ 灵活规模集
本主题介绍如何使用 Azure CLI 在 Azure 市场中查找 VM 映像。 使用 CLI、资源管理器模板或其他工具以编程方式创建 VM 时,使用此信息指定市场映像。
还可以使用 Azure 市场或 Azure PowerShell 浏览可用的映像和产品/服务。
术语
Azure 中的市场映像具有以下属性:
- 发布者:创建映像的组织。 示例:Canonical、RedHat、SUSE。
- 产品/服务:发布者创建的一组相关映像的名称。 示例:0001-com-ubuntu-server-jammy、RHEL、sles-15-sp3。
- SKU:产品/服务的实例,例如分发的主要版本。 示例:22_04-lts-gen2、8-lvm-gen2、gen2。
- 版本:映像 SKU 的版本号。
可以单独传递这些值,或将这些值作为映像 URN 传递,并将它们用冒号 (:) 隔开。 例如:发布者:产品/服务:SKU:版本 。 可将 URN 中的版本号替换为 latest
,以使用最新版本的映像。
如果映像发布服务器提供附加许可和购买条款,则必须先接受这些条款才能使用映像。 有关详细信息,请参阅查看购买计划信息。
列出常用映像
可以运行 az vm image list --all 查看所有可用的映像,但生成整个列表可能需要几分钟时间。 一种更快的方式是使用 az vm image list
(无需使用 --all
选项)来查看 Azure 市场中的常用 VM 映像列表。 例如,运行以下命令以表格形式显示缓存的常用映像列表:
az vm image list --output table
输出包括映像 URN。 如果省略 --all
选项,则可以看到每个图像的 UrnAlias(如果可用)。 UrnAlias 是为 Ubuntu2204 等常用映像创建的简化版本。
此命令输出的 Linux 映像别名及其详细信息如下:
Architecture Offer Publisher Sku Urn UrnAlias Version
-------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ----------------------- ---------
x64 CentOS OpenLogic 8_5-gen2 OpenLogic:CentOS:8_5-gen2:latest CentOS85Gen2 latest
x64 Debian11 Debian 11-backports-gen2 Debian:debian-11:11-backports-gen2:latest Debian-11 latest
x64 flatcar-container-linux-free kinvolk stable-gen2 kinvolk:flatcar-container-linux-free:stable-gen2:latest FlatcarLinuxFreeGen2 latest
x64 opensuse-leap-15-4 SUSE gen2 SUSE:opensuse-leap-15-4:gen2:latest OpenSuseLeap154Gen2 latest
x64 RHEL RedHat 8-lvm-gen2 RedHat:RHEL:8-lvm-gen2:latest RHELRaw8LVMGen2 latest
x64 sles-15-sp3 SUSE gen2 SUSE:sles-15-sp3:gen2:latest SLES latest
x64 0001-com-ubuntu-server-jammy Canonical 22_04-lts-gen2 Canonical:0001-com-ubuntu-server-jammy:22_04-lts-gen2:latest Ubuntu2204 latest
此命令输出的 Windows 映像别名及其详细信息如下:
Architecture Offer Publisher Sku Urn Alias Version
-------------- ---------------------------- ---------------------- ---------------------------------- ------------------------------------------------------------------------------ ----------------------- ---------
x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition:latest Win2022AzureEdition latest
x64 WindowsServer MicrosoftWindowsServer 2022-datacenter-azure-edition-core MicrosoftWindowsServer:WindowsServer:2022-datacenter-azure-edition-core:latest Win2022AzureEditionCore latest
x64 WindowsServer MicrosoftWindowsServer 2019-Datacenter MicrosoftWindowsServer:WindowsServer:2019-Datacenter:latest Win2019Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2016-Datacenter MicrosoftWindowsServer:WindowsServer:2016-Datacenter:latest Win2016Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-R2-Datacenter MicrosoftWindowsServer:WindowsServer:2012-R2-Datacenter:latest Win2012R2Datacenter latest
x64 WindowsServer MicrosoftWindowsServer 2012-Datacenter MicrosoftWindowsServer:WindowsServer:2012-Datacenter:latest Win2012Datacenter latest
查找特定映像
可以按 --publisher
或其他参数筛选映像列表以限制结果。
例如,以下命令显示所有 Debian 产品/服务:
az vm image list --offer Debian --all --output table
可以通过添加 --architecture
参数将结果限制为单个体系结构。 例如,如果要显示 Canonical 中提供的所有 Arm64 映像,请执行以下操作:
az vm image list --architecture Arm64 --publisher Canonical --all --output table
查看所有可用映像
在某个位置查找映像的另一种方法是,运行序列中的 az vm image list-publishers、az vm image list-offers 和 az vm image list-skus 命令。 可以使用这些命令确定以下值:
列出某个位置的映像发布服务器。 在本例中,我们探讨的是美国西部区域。
az vm image list-publishers --location westus --output table
对于给定的发布者,列出其产品。 在此示例中,我们将 RedHat 添加为发布者。
az vm image list-offers --location westus --publisher RedHat --output table
对于给定的产品,列出其 SKU。 在此示例中,我们将 RHEL 添加为套餐。
az vm image list-skus --location westus --publisher RedHat --offer RHEL --output table
注意
Canonical 更改了他们用于最新版本的套餐名称。 在 Ubuntu 20.04 之前,套餐名称为 UbuntuServer。 对于 Ubuntu 20.04,套餐名称为 0001-com-ubuntu-server-focal
,对于 Ubuntu 22.04,其名称为 0001-com-ubuntu-server-jammy
。
对于给定的发布服务器、产品/服务和 SKU,显示所有版本的映像。 在此示例中,我们将 9_1 添加为 SKU。
az vm image list \ --location westus \ --publisher RedHat \ --offer RHEL \ --sku 9_1 \ --all --output table
使用 az vm create 命令创建 VM 时,可将 URN 列的此值与 --image
参数一起传递。 还可以将 URN 中的版本号替换为“latest”以使用最新版本的映像。
如果使用资源管理器模板部署 VM,请在 imageReference
属性中单独设置映像参数。 请参阅模板参考。
查看购买计划信息
Azure 市场中的某些 VM 映像具有附加许可条款和购买条款,你必须接受这些条款,然后才能以编程方式部署这些映像。
若要从此类映像部署 VM,需要在首次使用时接受映像的条款,每个订阅接受一次。 还需要指定采购计划参数,以便从该映像部署 VM
若要查看映像的购买计划信息,请使用映像的 URN 运行 az vm image show 命令。 如果输出中的 plan
属性不是 null
,则映像有条款,在以编程方式部署前需要接受该条款。
例如,Canonical Ubuntu Server 18.04 LTS 映像没有、额外条款,因为 plan
信息为 null
:
az vm image show --location westus --urn Canonical:UbuntuServer:18.04-LTS:latest
输出:
{
"dataDiskImages": [],
"id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/18.04-LTS/Versions/18.04.201901220",
"location": "westus",
"name": "18.04.201901220",
"osDiskImage": {
"operatingSystem": "Linux"
},
"plan": null,
"tags": null
}
对 Bitnami 映像认证的 RabbitMQ 运行类似的命令显示以下 plan
属性:name
、product
和 publisher
。 (某些映像还具有 promotion code
属性。)
az vm image show --location westus --urn bitnami:rabbitmq:rabbitmq:latest
输出:
{
"dataDiskImages": [],
"id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/westus/Publishers/bitnami/ArtifactTypes/VMImage/Offers/rabbitmq/Skus/rabbitmq/Versions/3.7.1901151016",
"location": "westus",
"name": "3.7.1901151016",
"osDiskImage": {
"operatingSystem": "Linux"
},
"plan": {
"name": "rabbitmq",
"product": "rabbitmq",
"publisher": "bitnami"
},
"tags": null
}
若要部署此映像,则在使用该映像部署 VM 时,需要接受条款,并提供购买计划参数。
接受条款
若要查看并接受许可条款,请使用 az vm image terms 命令。 接受条款时,将在订阅中启用编程部署。 对于映像的每个订阅,只需接受条款一次。 例如:
az vm image terms show --urn bitnami:rabbitmq:rabbitmq:latest
输出包括指向许可条款的 licenseTextLink
,并指示 accepted
的值为 true
:
{
"accepted": true,
"additionalProperties": {},
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/providers/Microsoft.MarketplaceOrdering/offertypes/bitnami/offers/rabbitmq/plans/rabbitmq",
"licenseTextLink": "https://storelegalterms.blob.core.windows.net/legalterms/3E5ED_legalterms_BITNAMI%253a24RABBITMQ%253a24RABBITMQ%253a24IGRT7HHPIFOBV3IQYJHEN2O2FGUVXXZ3WUYIMEIVF3KCUNJ7GTVXNNM23I567GBMNDWRFOY4WXJPN5PUYXNKB2QLAKCHP4IE5GO3B2I.txt",
"name": "rabbitmq",
"plan": "rabbitmq",
"privacyPolicyLink": "https://bitnami.com/privacy",
"product": "rabbitmq",
"publisher": "bitnami",
"retrieveDatetime": "2019-01-25T20:37:49.937096Z",
"signature": "XXXXXXLAZIK7ZL2YRV5JYQXONPV76NQJW3FKMKDZYCRGXZYVDGX6BVY45JO3BXVMNA2COBOEYG2NO76ONORU7ITTRHGZDYNJNXXXXXX",
"type": "Microsoft.MarketplaceOrdering/offertypes"
}
若要接受条款,请键入:
az vm image terms accept --urn bitnami:rabbitmq:rabbitmq:latest
使用映像参数部署全新 VM
如果已有映像的相关信息,可以使用 az vm create
命令来进行部署。
若要部署没有计划信息的映像(例如,来自 Canonical 的最新 Ubuntu Server 18.04 映像),请传递 --image
的 URN:
az group create --name myURNVM --location westus
az vm create \
--resource-group myURNVM \
--name myVM \
--admin-username azureuser \
--generate-ssh-keys \
--image Canonical:UbuntuServer:18.04-LTS:latest
对于具有购买计划参数的映像,如由 Bitnami 映像认证的 RabbitMQ,则可以传递 --image
的 URN,并提供购买计划参数:
az group create --name myPurchasePlanRG --location westus
az vm create \
--resource-group myPurchasePlanRG \
--name myVM \
--admin-username azureuser \
--generate-ssh-keys \
--image bitnami:rabbitmq:rabbitmq:latest \
--plan-name rabbitmq \
--plan-product rabbitmq \
--plan-publisher bitnami
如果收到有关接受映像条款的消息,请查看接受条款部分。 请确保 az vm image accept-terms
的输出返回值 "accepted": true,
,表明你已接受映像的条款。
将现有 VHD 与购买计划信息配合使用
如果来自 VM 的现有 VHD 是使用付费 Azure 市场映像创建,则在从该 VHD 创建全新 VM 时,可能需要提供购买计划信息。
如果你仍有原始 VM 或有使用同一市场映像创建的其他 VM,则可以使用 az vm get-instance-view 从其中获取计划名称、发布者和产品信息。 此示例获取 myResourceGroup 资源组中名为 myVM 的 VM,然后显示购买计划信息 。
az vm get-instance-view -g myResourceGroup -n myVM --query plan
如果在删除原始 VM 之前未获得计划信息,则可提交支持请求。 他们将需要 VM 名称、订阅 ID 和删除操作的时间戳。
获得计划信息后,可以使用 --attach-os-disk
参数指定 VHD 来创建新的 VM。
az vm create \
--resource-group myResourceGroup \
--name myNewVM \
--nics myNic \
--size Standard_DS1_v2 --os-type Linux \
--attach-os-disk myVHD \
--plan-name planName \
--plan-publisher planPublisher \
--plan-product planProduct
后续步骤
若要使用映像信息快速创建虚拟机,请参阅使用 Azure CLI 创建和管理 Linux VM。