Azure CLI与Powershell?

Abh*_*eet 35 powershell azure azure-cli azure-cli2

无法准确理解Windows环境中Azure CLI的优点.

它是针对想要从Linux环境中管理Azure IAAS的受众吗?

我认为Powershell核心将成为非Windows管理员的方式.Powershell Core是不是会在所有平台上移植得很好,为跨平台的受众提供服务?

简而言之,是否值得学习Azure CLI?

Shu*_*bao 26

Azure CLI是一种类似PowerShell的工具,适用于所有平台.无论您使用何种平台,都可以使用相同的命令:Windows,Linux或Mac.

现在,有两个版本的Azure CLI.Azure CLI 1.0是使用Node.js编写的,以实现跨平台功能,而新的Azure CLI 2.0是用Python编写的,以提供更好的跨平台功能.两者都是开源的,可在Github上获得.但是,目前只有某些PowerShell cmdlet支持在Linux上使用.

它是针对想要从Linux环境中管理Azure IAAS的受众吗?

我认为答案是肯定的.对于Linux或Mac开发人员,我认为他们更有可能使用Azure CLI.

  • 请注意,现在可以为 PowerShell Core 安装一个 Azure PowerShell 模块,它是在 Windows、Linux 或 macOS 上运行的 PowerShell 的跨平台版本。 (2认同)

The*_*dow 26

Azure CLI和PowerShell包都使用Azure的REST API.

正如我们的一位微软联系人所说:使用你喜欢的任何你喜欢的东西.

Azure CLI有一些优点:

  1. 开源 - 这有很多优点.它可能在未来发展得更快.您可以查看代码中的真实内容,社区可能会或将会更大,等等.
  2. Azure CLI可以与Groovy,Python,Ruby或任何其他脚本语言一起使用.与经验丰富的PowerShell开发人员相比,获得这些语言的优秀开发人员更容易.例如:我因为Java而使用了Groovy.使用这个组合然后学习PowerShell脚本更容易....

目前PowerShell有一个非常大的好处:Azure有一个庞大的PowerShell脚本示例存储库.但是:通常你必须自己完成以满足你的要求 - 因此一个例子可能是一个很好的起点 - 有时从头开始更容易.

我的建议是:使用Azure CLI - > For Scripting使用您公司熟悉的语言.

  • Powershell 真正最大的好处是它对对象进行操作,而不是对字符串进行操作。因此,使用命令输出非常容易:`$t = Get-AzEventGridTopic ... ; $端点 = $t.Endpoint`。使用 Azure CLI,您必须为此解析字符串。 (5认同)
  • 哈哈'我喜欢哪个'!我没有线索!我只想要一个! (3认同)
  • Azure PowerShell也是开源的:) (2认同)

Tho*_*mas 11

只是想补充一下我在Azure Cli和Az PowerShell中的经验。

根据2019年的经验,两者都是跨平台的,因此应该仅是语言/语法首选项,但是对于Azure Cli,所有/大多数命令都是幂等的

我最终用Azure Cli脚本替换了我所有的ARM模板,因为它不那么冗长且易于阅读。

使用Az Powershell,您仍然需要在创建资源之前检查资源是否存在,否则它将引发异常,因此脚本会毫无原因地变得非常复杂。

我们同时将Azure Cli和Az Powershell与Azure DevOps结合使用。Azure Cli命令只能从bash(Linux)或bat(Windows)脚本执行。所以这不是最佳的...

  • 我们使用Azure Cli部署资源是因为它易于阅读并且命令是幂等的。
  • 对于复杂的脚本,我更喜欢使用PowerShell,因为它具有许多有用的语言功能。

  • 我意识到您可以在自己的环境中自由地做任何您喜欢的事情。但是,重要的是要说“用 CLI 脚本替换 ARM 模板”不是最佳实践。 (9认同)
  • Azure CLI 命令也可用于 Powershell 脚本。 (2认同)

小智 11

PowerShell 比 CLI 有一些显着的优势:

  • PowerShell 是 Azure Functions 的一种语言。因此,您可以轻松编写模块或代码并将其推送到安全的 Azure 函数。CLI 不是受支持的语言。
  • 这同样适用于Azure的自动化运行手册,而CLI是不支持的语言。
  • 如果您想编排覆盖本地和云的混合工作负载,即将服务部署到 Windows Server,然后在 Azure 中部署端点以便与之交互,PowerShell 可以,但 CLI 不能(如果它确实如此,我会感到惊讶) )。
  • 如果你想投资一种可以调用遗留模块进行管理的语言,PowerShell 可以,但 CLI 不能。
  • 如果您想用 C# 或任何其他语言创建自己的 DLL 并将其合并到您的脚本中。我不得不对 DLL 进行逆向工程并将它们包装在 PowerShell 中以合并到业务流程中。
  • 与 CLI 相比,我在使用 PowerShell 扩展 DevOps 管道方面取得了更大的成功。
  • PowerShell 对 Azure 单元和烟雾测试以及大型 Azure 并行部署(除了笨重的 DevOps 并行任务)等场景提供了非常好的多线程工作负载支持。TBH,我不知道 Azure CLI 中的本机多线程。
  • 我可以开发一个模块,在上述所有场景中使用它,然后将其提供给最终客户;TBH,我不相信我可以为 CLI 做到这一点(创建一个模块,对其进行数字签名,然后 nuget feed 发行版)。

几乎没有我没有在 PowerShell 中编写脚本的内容,而使用 CLI 我可以做一些事情,但不能做其他事情。我的 PowerShell 技能在我从事企业 SharePoint、Dynamics、现在的 Office 和 Azure 的过程中一直保持相关性超过 10 年……所以我有偏见。


小智 6

PowerShell也是开源的。微软刚刚发布了使用.Net核心的PowerShell Azure Az模块(2018年12月)。因此它可以在Linux,Mac OS和Windows上运行。如果愿意,Linux开发人员仍然可以使用Azure CLI。


Man*_*glu 5

Powershell在2018年之前的非Windows平台上不可用.在2018年1月,Powershell可用于MacOS和Linux平台.

在此处获取MacOS或Linux上的Powershell安装说明