前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Azure 命令行工具大混战,都是什么,该选哪个?

Azure 命令行工具大混战,都是什么,该选哪个?

作者头像
Edi Wang
发布2019-08-16 12:53:37
2.4K0
发布2019-08-16 12:53:37
举报
文章被收录于专栏:汪宇杰博客汪宇杰博客

点击上方蓝字关注“汪宇杰博客”

导语

最近在学习 Azure 的命令行玩法,发现官方有不止一种命令行工具,容易对新手产生混淆,本文将介绍各种工具都是干啥的,以及如何选择。

目前,微软官方有3个Azure命令行工具,分别是:

  • Azure CLI
  • Azure PowerShell - Az Module
  • Azure PowerShell - AzureRM

它们的历史和作用各有不同。

Azure CLI

Azure CLI 是一个跨平台的命令行程序,可连接到 Azure 并对 Azure 资源执行管理命令。例如,若要创建 VM,可使用如下命令:

az vm create \

--resource-group CrmTestingResourceGroup \

--name CrmUnitTests \

--image UbuntuLTS

...

可通过两种方式使用 Azure CLI:通过 Azure Cloud Shell 在浏览器内使用或安装在本地 Linux、Mac 或 Windows 计算机上使用。通过这两种方式,均可以交互方式或编写脚本的方式使用 Azure CLI。若要以交互方式使用,请先在 Windows 上启动 cmd.exe 等 shell 或是在 Linux 或 macOS 上启动Bash,然后在 shell 提示符处发出命令。若要自动执行重复性任务,请使用所选 shell 脚本语法将命令配置到 shell 脚本中,然后执行该脚本。

(以上内容摘自 Microsoft Learn 官方免费学习平台)

Azure PowerShell

Azure PowerShell 是可添加到 Windows PowerShell 或 PowerShell Core 的模块,可用于连接 Azure 订阅并管理资源。Azure PowerShell 需通过 PowerShell 才能运行。PowerShell 提供 shell 窗口、命令解析等服务。Azure PowerShell 可添加特定于 Azure 的命令。

例如,Azure PowerShell 提供了可在 Azure 订阅中创建虚拟机的 New-AzVM 命令。若要使用 Azure PowerShell,请启动 PowerShell 应用程序,然后发出如下命令:

New-AzVm `

-ResourceGroupName "CrmTestingResourceGroup" `

-Name "CrmUnitTests" `

-Image "UbuntuLTS"

...

同样可通过两种方式使用 Azure PowerShell:通过 Azure Cloud Shell 在浏览器内使用或安装在本地 Linux、Mac 或 Windows 计算机上使用。对于这两种方式,均有两种模式可供选择。可在交互模式下使用,一次手动发出一个命令;也可在脚本模式下使用,执行包含多个命令的脚本。

(以上内容摘自 Microsoft Learn 官方免费学习平台)

然而,Azure PowerShell 里其实有两种:Az模块和AzureRM,这是两套不同的命令行工具,但功能非常重合。这一点在 Microsoft Learn 官网上并没有提到。

Az 模块

此新模块是采用 .NET Standard 从头开始编写的。 由于采用了 .NET Standard,Azure PowerShell 可以在 Windows 上的 PowerShell 5.1 下运行,也可以在任何平台上的 PowerShell Core 6.x 及更高版本下运行。Az 模块现在是通过 PowerShell 与 Azure 进行交互的首选方式。AzureRM 将继续进行 bug 修复,但不会再收到新功能。

(摘自微软官网文档 https://docs.microsoft.com/zh-CN/powershell/azure/overview?view=azps-2.5.0)

AzureRM

这实际上就是多年前的 Windows Azure PowerShell,我在2014年的博客文章里介绍过。但因为已经被微软官方遗弃,所以新学习 Azure 的读者,现在可以完全无视 AzureRM 这套 PowerShell 工具,也不用去看使用这个工具的文章

有关迁移到 Az 模块的文档和所有变更,都可以在上面的微软官网文档里找到。

如何选择

现在,我们的命令行选项其实只剩下了 Azure CLI 以及 Azure PowerShell (Az 模块),如何选择用哪个工具呢?

依然摘录 Microsoft Learn 官方免费学习平台 里的说明:

就可管理的 Azure 对象及可创建的配置而言,门户、Azure CLI 和 Azure PowerShell 大致上是相同的。三者也都是跨平台的工具。这就意味着在选择时,通常要考虑其他几个因素:

  • 自动化:是否需要自动执行一系列复杂的或重复性任务?Azure PowerShell 和 Azure CLI 支持自动化,而门户则不支持。
  • 学习曲线:是否需要在不学习新命令或语法的情况下快速完成任务?使用 Azure 门户,无需学习语法或记住命令。使用 Azure PowerShell 和 Azure CLI 时,必须了解所使用的每个命令的详细语法。
  • 团队技能组:团队是否拥有现成的专业知识?例如,团队可能使用过 PowerShell 来管理 Windows。若是如此,团队成员可快速熟练使用 Azure PowerShell。

示例

回想一下,你正在选择管理工具来为 CRM 应用程序创建测试环境。你的管理员需要执行两项特定的 Azure 任务:

  1. 为每种测试(单元、集成和验收)创建一个资源组。
  2. 在进行每轮测试前,在每个资源组中创建多个 VM。

若要创建资源组,可以选择 Azure 门户。这些是一次性任务,无需使用脚本来执行。

确定创建 VM 的最佳工具则更具挑战。你需要创建数个 VM 并且需要重复创建,可能每周要创建几次。这就意味着你需要自动化,因此 Azure 门户并非一个好的选择。在这种情况下,Azure PowerShell 或 Azure CLI 可满足你的需求。如果团队成员拥有现成的 PowerShell 知识,那么 Azure PowerShell 可能就是最佳选择。Azure PowerShell 可在管理团队使用的各种操作系统上运行,可支持自动化,且团队很容易上手。

大多数管理员首次接触 Azure 时都是使用的门户。这是一个很好的起点,因为门户提供了一个干净的、结构清晰的图形界面,但限制了自动化选项。如果需要自动化,Azure 提供了两个选项:Azure PowerShell 适用于具有 PowerShell 经验的管理员;Azure CLI 适用于其他所有人。

在实践中,企业通常既有一次性任务,也有重复性任务。这就意味着通常需要同时使用门户和脚本解决方案。在我们的 CRM 示例中,通过门户创建资源组,并使用 PowerShell 自动创建 VM,这样做是合适的。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 汪宇杰博客 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
命令行工具
腾讯云命令行工具 TCCLI 是管理腾讯云资源的统一工具。使用腾讯云命令行工具,您可以快速调用腾讯云 API 来管理您的腾讯云资源。此外,您还可以基于腾讯云的命令行工具来做自动化和脚本处理,以更多样的方式进行组合和重用。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档