Azure 自动化的灾难恢复

适用于:✔️ Linux VM ✔️ Windows VM

本文解释了应对区域性故障的灾难恢复策略。

您必须拥有灾难恢复策略来应对区域范围的服务中断。 灾难恢复策略有助于减少不可预测事件对企业和客户的影响和影响。 你负责设置自动化账户及其相关资源(如模块、连接、凭证、证书、变量和计划)的灾难恢复。 灾难恢复计划的一个重要方面是,如果主要区域中的自动化帐户不可用,就要准备好故障转移到次要区域中预先创建的自动化帐户副本。 确保灾难恢复策略考虑到了自动化帐户和依赖资源。

有些地区会 与其他区域配对 ,以防范区域性或大型地理灾害。 无论主要区域是否有区域配对,自动化帐户的灾难恢复策略都保持不变。

启用灾难恢复

创建的每个自动化账户都需要指定一个位置,并且必须在部署时使用该位置。 这将是你的自动化帐户的主要区域,其中包括资产、为该自动化帐户创建的运行簿、作业执行数据和日志。 为实现灾难恢复,副本 Automation 帐户必须已部署在次要区域并处于就绪状态。

  • 首先在任一备用区域创建一个副本自动化帐户
  • 选择您所需的次要区域 - 配对区域或任何其他支持 Azure 自动化的区域。
  • 除了创建自动化帐户的副本之外,还应将主要区域中的自动化帐户内的依赖资源复制到次要区域中的自动化帐户中,例如 Runbook、模块、连接、凭据、证书、变量、计划,以及分配给 Run As 帐户和托管标识的权限。 可以使用 PowerShell 脚本将自动化帐户的资产从一个区域迁移到另一个区域。
  • 如果使用 ARM 模板来定义和部署自动化 Runbook,则可以使用这些模板在创建副本自动化帐户的任何其他 Azure 区域中部署这些 Runbook。 如果主区域发生全区域故障,你可以执行次要区域复制的运行手册,继续正常运营。 这种方法确保了当主区域发生中断或故障时,次级区域能够挺身而出继续工作。

注意

由于数据驻留要求,主要区域中的作业数据和日志在次要区域中不可用。

云和混合作业的方案

方案:在次要区域中执行云作业

对于云作业,前提是副本自动化账户以及所有依赖资源和运行手册都已在次要区域部署并可用,则停机时间将微乎其微。 可以照常使用副本帐户来执行作业。

场景:在部署于与发生故障的主区域不同区域的混合 Runbook Worker 上执行作业

如果使用基于扩展的方法将 Windows 或 Linux 混合 Runbook 辅助角色部署在一个与发生故障的主要区域不同的区域中,请按照以下步骤继续执行混合作业:

  1. 删除主区域中自动化帐户里的混合 Runbook 辅助角色上安装的扩展。
  2. 将同一个混合运行簿辅助角色添加到次要区域中自动化帐户的混合辅助角色组。 混合辅助角色扩展安装在自动化帐户副本中的计算机上。
  3. 在步骤 2 中创建的混合 Runbook 辅助角色上运行这些作业。

场景:在主区域发生故障时,在部署于主区域的混合 Runbook 辅助角色上执行作业

如果混合 Runbook 辅助角色部署在主区域,并且该区域发生计算故障,则该计算机将无法用于执行 Automation 作业。 必须在另一区域预配一台新的虚拟机,并在次要区域的自动化帐户中将其注册为 Hybrid Runbook Worker。

用于将自动化帐户资产从一个区域迁移到另一个区域的脚本

可以使用这些脚本将自动化帐户资产从主要区域中的帐户迁移到次要区域中的帐户。 这些脚本仅用于迁移 Runbook、模块、连接、凭据、证书和变量。 执行这些脚本不会影响主要区域中的自动化帐户及其资产。

先决条件

  1. 确保次要区域中的自动化帐户已创建且可用,以便可以将主要区域中的资产迁移到该帐户。 目标自动化帐户最好是没有任何自定义资源的帐户,因为这样可以防止由于同名而发生资源冲突以及数据丢失。

  2. 确保在主要区域的自动化帐户中启用系统分配的托管标识。

  3. 确保主要自动化帐户的系统分配的托管标识对其所属的订阅拥有参与者访问权限。

  4. 确保主要自动化帐户的托管标识对次要区域中的自动化帐户拥有参与者访问权限以及读写权限。 若要启用,请在次要自动化帐户的托管标识中提供所需的权限。 了解详细信息

  5. 确保脚本有权访问主要区域中的自动化帐户资产。 因此,应在该自动化帐户中将其作为 Runbook 执行,以确保迁移成功。

  6. 所需的模块为:

    • Az.Accounts 版本 2.8.0
    • Az.Resources 版本 6.0.0
    • Az.Automation 版本 1.7.3
    • Az.Storage 版本 4.6.0
  7. 确保源和目标自动化帐户都属于同一个 Microsoft Entra 租户。

创建并执行运行手册

可以使用 PowerShell 脚本PowerShell 工作流运行簿,或者从运行簿库中导入并执行运行簿,以将资产从一个自动化帐户迁移到另一个自动化帐户。

按照以下步骤导入并执行运行手册:

  1. 登录 Azure 门户
  2. 转到要迁移到另一个区域的自动化帐户。
  3. 流程自动化下,选择运行手册
  4. 选择 “浏览库”,然后在搜索框中输入 “将自动化帐户资产从一个区域迁移到另一个区域”,并选择 “PowerShell 脚本”
  5. 导入运行手册页面中,输入运行手册的名称。
  6. 为“运行时版本”选择 5.1 或 7.1(预览版)
  7. 输入说明,然后选择“导入”。
  8. 编辑 PowerShell Runbook 页面上,编辑所需参数并执行该运行簿。

可以选择任一选项来编辑和执行脚本。 可以提供“选项 1”中给出的七个必需参数或“选项 2”中给出的三个必需参数来编辑和执行脚本。

选项包括:

名称 必需 说明
SourceAutomationAccountName 真 实 主区域中需要从中迁移资产的自动化账户名称。
目标自动化帐户名称 真 实 次要区域中的、需要将资产迁移到其中的自动化帐户的名称。
SourceResourceGroup 真 实 主区域中自动化帐户的资源组名称。
DestinationResourceGroup 真 实 次要区域中的自动化帐户的资源组名称。
SourceSubscriptionId 真 实 主要区域中的自动化帐户的订阅 ID
DestinationSubscriptionId 真 实 次要区域中的自动化帐户的订阅 ID。
Type[] 真 实 由需要迁移的所有类型的资产组成的数组,可能的值为 Certificates、Connections、Credentials、Modules、Runbooks 和 Variables。

限制

  • 该脚本只迁移自定义的PowerShell模块。 它不会将默认模块和 Python 包迁移到副本自动化账户。
  • 该脚本不会迁移主区域中的自动化帐户内现有的计划托管标识。 必须在副本自动化帐户中手动创建这些资源。
  • 作业数据和活动日志不会迁移到副本帐户。

后续步骤