【问题标题】:Azure automation vs Azure Runbooks vs Azure CLI vs Azure DSC vs Azure ARM vs Azure APIAzure 自动化 vs Azure Runbooks vs Azure CLI vs Azure DSC vs Azure ARM vs Azure API
【发布时间】:2023-03-26 03:57:01
【问题描述】:

似乎有很多方法可以在 Azure 中使用 PowerShell 实现自动化。 由于 ARM 模板是最新的,Azure 中的任何其他 PowerShell 选项已经过时了吗? 这些工具/脚本有什么区别:

  • Azure 运行手册
  • Azure 自动化
  • Powershell DSC
  • Azure CLI
  • ARM 模板(使用 PowerShell 执行的 JSON 文件)
  • Azure API
  • 我错过了 Azure 中的任何其他 PowerShell 可能性吗? a) Azure 自动关机 b) Azure 变更跟踪

【问题讨论】:

标签: powershell azure-automation azure-cli azure-runbook


【解决方案1】:

Azure Runbook 是 Azure 自动化的“功能”之一。除非您创建运行手册,否则您可以使用 Azure 自动化真正实现任何事情的自动化。

Powershell DSC 并没有真正用于在 Azure 中创建资源,因此您不能(当然可以,但这样做肯定是一种糟糕的方式)用它在 Azure 中创建资源。

Azure Cli 根本不是 powershell,不知道你为什么提到这一点。 ARM 模板也不是 powershell,但可以从 powershell 调用它们(如果你在机器上安装了 Azure Cli)。

您完全忽略了诸如 ansible\terraform\chef\puppet\etc 之类的解决方案。还有各种SDK。

你应该想到的最重要的区别——命令式\声明式。在 Azure 中创建资源的方法有很多。根据您的用例,您可能会使用一种或另一种工具,其中一些功能更多,一些功能更少,但它们都在下面使用 Azure REST Api。

【讨论】:

  • ansible\chef\puppet 与基础设施自动化无关,这些是用于配置管理的工具,当基础设施存在时您可以选择这些工具,用于配置(例如虚拟机)
  • “Powershell DSC 并没有真正用于在 Azure 中创建资源,所以你不能(你可以,但它肯定是一种糟糕的方法)” - 怎么会这样?这一切都取决于......虽然 Powershell DSL 对我有用,但部署 Azure 资源......
  • 您可以使用 powershell dsc 在 azure 中创建资源,但它没有相应的模块。至少是官方的
  • 是的,最初。 10 年前,还没有公有云。好的。这能证明什么吗?不。现在他们可以用来做到这一点。他们习惯于这样做。你的意思是什么?
【解决方案2】:
  • 最好的 Powershell 脚本是 AZ (azure CLI),因为它 优化 powershell 脚本(从头开始)
  • 任何形式中最好的是 ARM 模板 (.json),因为它是 更新现有基础设施时智能(它不会删除现有的 但增加了缺失)。因此它胜过 AZ,但有时 AZ 有助于 ARM 模板(例如:缺少某些功能)。
  • Azure 自动化有助于安排任务:

例如:开发机器应该运行 12 小时。 创建 PowerShell 工作流脚本,然后将它们绑定到两个 azure 自动化计划(开始 + 停止)

  • DSC 是一项 PowerShell 功能,可防止配置漂移。例如: 部署 DSC 配置以防止服务器服务 停下来。

大多数时候可供选择的选项有限(4 个选项)

例如:创建虚拟网络有以下选项:

  1. 使用传送门
  2. 使用 Powershell
  3. 使用 Azure CLI
  4. Json ARM 模板

按要求于 2020 年编辑:

IAC(基础架构即代码)是当今的事实,公司要么选择 ARM 模板,要么选择 Terraform(或类似的)。使用 Terraform 时,与 arm 模板的兼容性可能会成为问题。 我使用 80% 的带有 AZ 的 powershell(主要是因为涉及 VM)和 20% 的 ARM 模板。那么问题就是失去幂等性。所以开发者需要知道哪些命令是幂等的。这会导致 arm 模板继承和这样的设计考虑。另一个问题可能是:“我应该一起创建 Keyvault 和 VM,还是应该将 Keyvault 分开?”或者换句话说,对资源创建或更新进行分组,而不管它们存在于哪个 azure 资源组。

Azure 函数也用于自动化,例如:基于某些条件的 VM 开始时间和结束时间。

Azure 策略在企业自动化方面发挥着重要作用。例如:如果在创建时将标签添加到 VM,那么它会触发加入域的策略(在 10 分钟内)。这样,企业中的每个团队都可以在需要时重复使用代码。

我能想到的其他脚本和自动化是 KQL(Kusto 查询语言),它提供用于监控的仪表板并采取必要的操作,例如关闭 VM。但它可能不适合“自动化”。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-09
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 2017-04-28
  • 2020-05-06
  • 1970-01-01
相关资源
最近更新 更多