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

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

还可以使用 Azure 市场店面、Azure 门户Azure PowerShell 浏览可用的映像和产品/服务。

确保已安装最新的 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 市场中查看常用 VM 映像的列表。 例如,运行以下命令以表格形式显示缓存的常用映像列表:

az vm image list --output table

输出包括映像 URN(Urn 列中的值)。 使用其中一个常用市场映像创建 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
...

查找特定映像

若要在市场中查找特定 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 属性中单独设置映像参数。 请参阅模板参考

部署具有 Marketplace 条款的映像

Azure Marketplace 中的某些 VM 映像具有附加许可条款和购买条款,你必须接受这些条款,然后才能以编程方式部署这些映像。

若要从此类映像部署 VM,需要接受映像的条款并启用编程部署。 只需在订阅中执行一次此操作。 然后,每次以编程方式从映像部署 VM 时,还需要指定“购买计划”参数。

以下部分介绍如何执行这些操作:

  • 了解 Marketplace 映像是否具有附加许可条款
  • 以编程方式接受条款
  • 以编程方式部署 VM 时提供购买计划参数

查看计划属性

若要查看映像的购买计划信息,请运行 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