如何使用 Azure CLI 在 Azure Marketplace 中查找 Linux VM 映像

本主题介绍如何使用 Azure CLI 2.0 在 Azure Marketplace 中查找 VM 映像。 使用 CLI、资源管理器模板或其他工具以编程方式创建 VM 时,使用此信息指定 Marketplace 映像。

确保已安装最新的 Azure CLI 2.0 并已登录到 Azure 帐户 (az login)。

术语

Azure 中的 Marketplace 映像具有以下属性:

  • 发布者 - 创建映像的组织。 示例:Canonical、MicrosoftWindowsServer
  • 产品/服务 - 发布者创建的一组相关映像的名称。 示例:Ubuntu Server、WindowsServer
  • SKU - 产品/服务的实例,例如分发的主要版本。 示例:16.04-LTS、2016-Datacenter
  • 版本 - 映像 SKU 的版本号。

若要在以编程方式部署 VM 时标识 Marketplace 映像,请以参数的形式单独提供这些值,或者使用某些工具接受映像 URN。 URN 将这些值合并,值之间用冒号 (:) 字符隔开:发布者:产品/服务:Sku:版本。 在 URN 中,可将版本号替换为“latest”,这会选择最新的映像版本。

如果映像发布者提供附加许可条款和购买条款,你必须接受这些条款并启用编程部署。 以编程方式部署 VM 时,还需要提供“购买计划”参数。 请参阅部署具有 Marketplace 条款的映像

Note

在 Azure 中国区使用 Azure CLI 2.0 之前,请先运行 az cloud set -n AzureChinaCloud 来改变云环境。如果想切回国际版 Azure,请再次运行 az cloud set -n AzureCloud

运行 az vm image list 命令,无需选择 --all 选项即可在 Azure Marketplace 中查看常用 VM 映像的列表。 例如,运行以下命令以表格形式显示缓存的常用映像列表:

az vm image list --output table

输出包括映像 URN(Urn 列中的值)。 使用其中一个常用 Marketplace 映像创建 VM 时,可选择指定 UrnAlias(一种简短格式,如 UbuntuLTS)。

You are viewing an offline list of images, use --all to retrieve an up-to-date list
Offer          Publisher               Sku                 Urn                                                             UrnAlias             Version
-------------  ----------------------  ------------------  --------------------------------------------------------------  -------------------  ---------
CentOS         OpenLogic               7.3                 OpenLogic:CentOS:7.3:latest                                     CentOS               latest
CoreOS         CoreOS                  Stable              CoreOS:CoreOS:Stable:latest                                     CoreOS               latest
Debian         credativ                8                   credativ:Debian:8:latest                                        Debian               latest
openSUSE-Leap  SUSE                    42.2                SUSE:openSUSE-Leap:42.2:latest                                  openSUSE-Leap        latest
SLES           SUSE                    12-SP2              SUSE:SLES:12-SP2:latest                                         SLES                 latest
UbuntuServer   Canonical               16.04-LTS           Canonical:UbuntuServer:16.04-LTS:latest                         UbuntuLTS            latest
...

查找特定映像

若要在 Marketplace 中查找特定 VM 映像,请结合使用 az vm image list 命令和 --all 选项。 此版本命令完成需要一些时间,且会返回冗长输出,因此通常可按 --publisher 或其他参数筛选列表。

例如,以下命令显示所有 Debian 产品/服务(请记住,不使用 --all 开关时,只搜索常见映像的本地缓存):

az vm image list --offer Debian --all --output table 

部分输出:

Offer    Publisher    Sku                Urn                                              Version
-------  -----------  -----------------  -----------------------------------------------  --------------
Debian   credativ     7                  credativ:Debian:7:7.0.201602010                  7.0.201602010
Debian   credativ     7                  credativ:Debian:7:7.0.201603020                  7.0.201603020
Debian   credativ     7                  credativ:Debian:7:7.0.201604050                  7.0.201604050
Debian   credativ     7                  credativ:Debian:7:7.0.201604200                  7.0.201604200
Debian   credativ     7                  credativ:Debian:7:7.0.201606280                  7.0.201606280
Debian   credativ     7                  credativ:Debian:7:7.0.201609120                  7.0.201609120
Debian   credativ     7                  credativ:Debian:7:7.0.201611020                  7.0.201611020
Debian   credativ     8                  credativ:Debian:8:8.0.201602010                  8.0.201602010
Debian   credativ     8                  credativ:Debian:8:8.0.201603020                  8.0.201603020
Debian   credativ     8                  credativ:Debian:8:8.0.201604050                  8.0.201604050
Debian   credativ     8                  credativ:Debian:8:8.0.201604200                  8.0.201604200
Debian   credativ     8                  credativ:Debian:8:8.0.201606280                  8.0.201606280
Debian   credativ     8                  credativ:Debian:8:8.0.201609120                  8.0.201609120
Debian   credativ     8                  credativ:Debian:8:8.0.201611020                  8.0.201611020
Debian   credativ     8                  credativ:Debian:8:8.0.201701180                  8.0.201701180
Debian   credativ     8                  credativ:Debian:8:8.0.201703150                  8.0.201703150
Debian   credativ     8                  credativ:Debian:8:8.0.201704110                  8.0.201704110
Debian   credativ     8                  credativ:Debian:8:8.0.201704180                  8.0.201704180
Debian   credativ     8                  credativ:Debian:8:8.0.201706190                  8.0.201706190
Debian   credativ     8                  credativ:Debian:8:8.0.201706210                  8.0.201706210
Debian   credativ     8                  credativ:Debian:8:8.0.201708040                  8.0.201708040
...

通过 --location--publisher--sku 选项应用类似的筛选器。 甚至可以在筛选器上执行部分匹配,如搜索 --offer Deb 以查找所有 Debian 映像。

如果没有使用 --location 选项指定一个特定位置,则将返回默认位置的值。 (通过运行 az configure --defaults location=<location> 设置不同默认位置。)

例如,以下命令列出了“中国北部”位置中的所有 Debian 8 SKU:

az vm image list --location chinanorth --offer Deb --publisher credativ --sku 8 --all --output table

部分输出:

Offer    Publisher    Sku                Urn                                              Version
-------  -----------  -----------------  -----------------------------------------------  -------------
Debian   credativ     8                  credativ:Debian:8:8.0.201602010                  8.0.201602010
Debian   credativ     8                  credativ:Debian:8:8.0.201603020                  8.0.201603020
Debian   credativ     8                  credativ:Debian:8:8.0.201604050                  8.0.201604050
Debian   credativ     8                  credativ:Debian:8:8.0.201604200                  8.0.201604200
Debian   credativ     8                  credativ:Debian:8:8.0.201606280                  8.0.201606280
Debian   credativ     8                  credativ:Debian:8:8.0.201609120                  8.0.201609120
Debian   credativ     8                  credativ:Debian:8:8.0.201611020                  8.0.201611020
Debian   credativ     8                  credativ:Debian:8:8.0.201701180                  8.0.201701180
Debian   credativ     8                  credativ:Debian:8:8.0.201703150                  8.0.201703150
Debian   credativ     8                  credativ:Debian:8:8.0.201704110                  8.0.201704110
Debian   credativ     8                  credativ:Debian:8:8.0.201704180                  8.0.201704180
Debian   credativ     8                  credativ:Debian:8:8.0.201706190                  8.0.201706190
Debian   credativ     8                  credativ:Debian:8:8.0.201706210                  8.0.201706210
...

在某个位置查找映像的另一种方法是,运行序列中的 az vm image list-publishersaz vm image list-offersaz vm image list-skus 命令。 可以使用这些命令确定以下值:

  1. 列出映像发布者。
  2. 对于给定的发布者,列出其产品。
  3. 对于给定的产品,列出其 SKU。

然后,对于所选 SKU,可以选择要部署的版本。

例如,以下命令列出了中国北部位置的映像发布者:

az vm image list-publishers --location chinanorth --output table

部分输出:

Location    Name
----------  ----------------------------------------------------
chinanorth      1e
chinanorth      4psa
chinanorth      7isolutions
chinanorth      a10networks
chinanorth      abiquo
chinanorth      accellion
chinanorth      Acronis
chinanorth      Acronis.Backup
chinanorth      actian_matrix
chinanorth      actifio
chinanorth      activeeon
chinanorth      adatao
...

使用此信息可以从特定发布者找到产品/服务。 例如,如果 Canonical 是中国北部位置的映像发布者,可通过运行 azure vm image list-offers 查找其产品/服务。 传递位置和发布者,如以下示例中所示:

az vm image list-offers --location chinanorth --publisher Canonical --output table

输出:

Location    Name
----------  -------------------------
chinanorth      Ubuntu15.04Snappy
chinanorth      Ubuntu15.04SnappyDocker
chinanorth      UbunturollingSnappy
chinanorth      UbuntuServer
chinanorth      Ubuntu_Core
chinanorth      Ubuntu_Snappy_Core
chinanorth      Ubuntu_Snappy_Core_Docker

可以看到,在中国北部区域,Canonical 在 Azure 上发布了 UbuntuServer 产品。 但是,有哪些 SKU 呢? 要获取这些值,请运行 azure vm image list-skus,并对找到的位置、发布者和产品/服务进行设置:

az vm image list-skus --location chinanorth --publisher Canonical --offer UbuntuServer --output table

输出:

Location    Name
----------  -----------------
chinanorth      12.04.3-LTS
chinanorth      12.04.4-LTS
chinanorth      12.04.5-DAILY-LTS
chinanorth      12.04.5-LTS
chinanorth      12.10
chinanorth      14.04.0-LTS
chinanorth      14.04.1-LTS
chinanorth      14.04.2-LTS
chinanorth      14.04.3-LTS
chinanorth      14.04.4-LTS
chinanorth      14.04.5-DAILY-LTS
chinanorth      14.04.5-LTS
chinanorth      16.04-beta
chinanorth      16.04-DAILY-LTS
chinanorth      16.04-LTS
chinanorth      16.04.0-LTS
chinanorth      16.10
chinanorth      16.10-DAILY
chinanorth      17.04
chinanorth      17.04-DAILY
chinanorth      17.10-DAILY

最后,使用 az vm image list 命令查找所需的特定版本的 SKU,例如,16.04-LTS:

az vm image list --location chinanorth --publisher Canonical --offer UbuntuServer --sku 16.04-LTS --all --output table

输出:

Offer         Publisher    Sku        Urn                                               Version
------------  -----------  ---------  ------------------------------------------------  ---------------
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201611220  16.04.201611220
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201611300  16.04.201611300
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201612050  16.04.201612050
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201612140  16.04.201612140
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201612210  16.04.201612210
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201701130  16.04.201701130
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201702020  16.04.201702020
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201702200  16.04.201702200
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201702210  16.04.201702210
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201702240  16.04.201702240
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201703020  16.04.201703020
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201703030  16.04.201703030
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201703070  16.04.201703070
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201703270  16.04.201703270
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201703280  16.04.201703280
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201703300  16.04.201703300
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201705080  16.04.201705080
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201705160  16.04.201705160
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201706100  16.04.201706100
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201706191  16.04.201706191
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201707210  16.04.201707210
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201707270  16.04.201707270
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201708030  16.04.201708030
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201708110  16.04.201708110
UbuntuServer  Canonical    16.04-LTS  Canonical:UbuntuServer:16.04-LTS:16.04.201708151  16.04.201708151

现在,可通过记下 URN 值准确地选择想要使用的映像。 通过 az vm create 命令创建 VM 时,可将此值与 --image 参数一起传递。 记住,可选择将 URN 中的版本号替换为“latest”。 此版本始终是映像的最新版本。

如果使用资源管理器模板部署 VM,请在 imageReference 属性中单独设置映像参数。 请参阅模板参考

查看计划属性

若要查看映像的购买计划信息,请运行 az vm image show 命令。 如果输出中的 plan 属性不是 null,则映像有条款,在以编程方式部署前需要接受该条款。

例如,Canonical Ubuntu Server 16.04 LTS 映像没有附加条款,因为 plan 信息为 null

az vm image show --location chinanorth --publisher Canonical --offer UbuntuServer --sku 16.04-LTS --version 16.04.201801260

输出:

{
  "dataDiskImages": [],
  "id": "/Subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Providers/Microsoft.Compute/Locations/chinanorth/Publishers/Canonical/ArtifactTypes/VMImage/Offers/UbuntuServer/Skus/16.04-LTS/Versions/16.04.201801260",
  "location": "chinanorth",
  "name": "16.04.201801260",
  "osDiskImage": {
    "operatingSystem": "Linux"
  },
  "plan": null,
  "tags": null
}

后续步骤

若要使用映像信息快速创建虚拟机,请参阅使用 Azure CLI 创建和管理 Linux VM