Azure 自动化与 Azure Runbooks 与 Azure CLI 与 Azure DSC 与 Azure ARM 与 Azure API
Azure automation vs Azure Runbooks vs Azure CLI vs Azure DSC vs Azure ARM vs Azure API
似乎有很多方法可以在 Azure 中使用 PowerShell 实现自动化。
由于 ARM 模板是最新的,Azure 中的任何其他 PowerShell 选项都已经过时了吗?
这些有什么区别tools/scripts:
- Azure 运行 书
- Azure 自动化
- Powershell DSC
- Azure CLI
- ARM 模板(JSON 个使用 PowerShell 执行的文件)
- 蔚蓝API
- 我错过了 Azure 中的任何其他 PowerShell 可能性吗?
a) Azure 自动关机
b) Azure 变更跟踪
Azure Runbook 是 Azure 自动化的 "features" 之一。除非您创建运行手册,否则您可以使用 Azure 自动化真正实现任何自动化。
Powershell DSC 并没有真正用于在 Azure 中创建资源,因此您不能(当然可以,但这肯定是一种糟糕的方法)使用它在 Azure 中创建资源。
Azure Cli 根本不是 powershell,不知道你为什么提到它。 ARM 模板也不是 powershell,但可以从 powershell 调用它们(如果你在机器上安装它,就像 Azure Cli)。
您完全遗漏了 ansible\terraform\chef\puppet\etc 等解决方案。还有各种SDK。
您应该想到的最重要的区别 - imperative\declarative。在 Azure 中创建资源的方法有很多。根据您的用例,您可能会使用一种或另一种工具,其中一些具有更多功能,一些功能较少,但它们都在底层使用 Azure REST Api。
- Powershell 脚本中最好的是 AZ (azure CLI),因为它
优化 powershell 脚本(从头开始)
- 任何形式中最好的是 ARM 模板 (.json),因为它是
更新现有基础设施时智能(它不会删除现有的
但增加了缺失)。因此它击败了 AZ 但有时 AZ 有助于 ARM 模板(例如:缺少某些功能)。
- Azure 自动化有助于安排任务:
例如:开发机器应该 运行 12 小时。
创建 PowerShell 工作流脚本,然后将它们绑定到两个 azure 自动化计划(启动 + 停止)
- DSC 是一种防止配置漂移的 PowerShell 功能。例如:
部署 DSC 配置以防止服务器服务
停止。
大多数时候可供选择的选项有限(4 个选项)
例如:要创建虚拟网络,这些是选项:
- 使用门户
- 使用 Powershell
- 使用 Azure CLI
- Json ARM 模板
2020年按要求编辑:
IAC(基础设施即代码)是当今的事实,公司要么选择 ARM 模板,要么选择 Terraform(或类似的)。使用 Terraform 时,与 arm 模板的兼容性可能会成为一个问题。
我使用 80% 的 powershell 和 AZ(主要是因为涉及 VM)和 20% 的 ARM 模板。那么问题就是失去幂等性。所以开发人员需要知道哪些命令是幂等的。这导致了arm模板继承和这样的设计考虑。另一个问题可能是:“我应该一起创建 Keyvault 和 VM,还是应该将 Keyvault 分开?”或者换句话说,无论它们存在于哪个 azure 资源组,资源创建或更新的分组。
Azure 函数也用于自动化,例如:基于某些条件的 VM 开始时间和结束时间。
Azure 策略在企业自动化方面发挥着重要作用。例如:如果在创建时将标签添加到虚拟机,则会触发加入域的策略(在 10 分钟内)。这样,企业中的每个团队都可以在需要时重复使用代码。
我能想到的另一个脚本和自动化是 KQL(Kusto 查询语言),用于提供用于监控的仪表板并采取必要的操作,例如关闭 VM。但它可能不适合 'automation'.
似乎有很多方法可以在 Azure 中使用 PowerShell 实现自动化。 由于 ARM 模板是最新的,Azure 中的任何其他 PowerShell 选项都已经过时了吗? 这些有什么区别tools/scripts:
- Azure 运行 书
- Azure 自动化
- Powershell DSC
- Azure CLI
- ARM 模板(JSON 个使用 PowerShell 执行的文件)
- 蔚蓝API
- 我错过了 Azure 中的任何其他 PowerShell 可能性吗? a) Azure 自动关机 b) Azure 变更跟踪
Azure Runbook 是 Azure 自动化的 "features" 之一。除非您创建运行手册,否则您可以使用 Azure 自动化真正实现任何自动化。
Powershell DSC 并没有真正用于在 Azure 中创建资源,因此您不能(当然可以,但这肯定是一种糟糕的方法)使用它在 Azure 中创建资源。
Azure Cli 根本不是 powershell,不知道你为什么提到它。 ARM 模板也不是 powershell,但可以从 powershell 调用它们(如果你在机器上安装它,就像 Azure Cli)。
您完全遗漏了 ansible\terraform\chef\puppet\etc 等解决方案。还有各种SDK。
您应该想到的最重要的区别 - imperative\declarative。在 Azure 中创建资源的方法有很多。根据您的用例,您可能会使用一种或另一种工具,其中一些具有更多功能,一些功能较少,但它们都在底层使用 Azure REST Api。
- Powershell 脚本中最好的是 AZ (azure CLI),因为它 优化 powershell 脚本(从头开始)
- 任何形式中最好的是 ARM 模板 (.json),因为它是 更新现有基础设施时智能(它不会删除现有的 但增加了缺失)。因此它击败了 AZ 但有时 AZ 有助于 ARM 模板(例如:缺少某些功能)。
- Azure 自动化有助于安排任务:
例如:开发机器应该 运行 12 小时。 创建 PowerShell 工作流脚本,然后将它们绑定到两个 azure 自动化计划(启动 + 停止)
- DSC 是一种防止配置漂移的 PowerShell 功能。例如: 部署 DSC 配置以防止服务器服务 停止。
大多数时候可供选择的选项有限(4 个选项)
例如:要创建虚拟网络,这些是选项:
- 使用门户
- 使用 Powershell
- 使用 Azure CLI
- Json ARM 模板
2020年按要求编辑:
IAC(基础设施即代码)是当今的事实,公司要么选择 ARM 模板,要么选择 Terraform(或类似的)。使用 Terraform 时,与 arm 模板的兼容性可能会成为一个问题。 我使用 80% 的 powershell 和 AZ(主要是因为涉及 VM)和 20% 的 ARM 模板。那么问题就是失去幂等性。所以开发人员需要知道哪些命令是幂等的。这导致了arm模板继承和这样的设计考虑。另一个问题可能是:“我应该一起创建 Keyvault 和 VM,还是应该将 Keyvault 分开?”或者换句话说,无论它们存在于哪个 azure 资源组,资源创建或更新的分组。
Azure 函数也用于自动化,例如:基于某些条件的 VM 开始时间和结束时间。
Azure 策略在企业自动化方面发挥着重要作用。例如:如果在创建时将标签添加到虚拟机,则会触发加入域的策略(在 10 分钟内)。这样,企业中的每个团队都可以在需要时重复使用代码。
我能想到的另一个脚本和自动化是 KQL(Kusto 查询语言),用于提供用于监控的仪表板并采取必要的操作,例如关闭 VM。但它可能不适合 'automation'.