自动化混合 Runbook 辅助角色概述
重要
Azure 自动化基于代理的用户混合 Runbook 辅助角色(Windows 和 Linux)已于 2024 年 8 月 31 日停用,不再受支持。 请按照有关如何从现有的基于代理的用户混合 Runbook 辅助角色迁移到基于扩展的混合辅助角色的指南进行操作。
Azure 自动化中的 Runbook 可能无权访问其他云或本地环境中的资源,因为它们在 Azure 云平台中运行。 利用 Azure 自动化的混合 Runbook 辅助角色功能,既可以直接在托管角色的计算机上运行 Runbook,也可以对环境中的资源运行 Runbook,从而管理这些本地资源。 Runbook 在 Azure 自动化中进行存储和管理,然后发送到一台或多台指定的计算机。
Azure 自动化通过 Azure 虚拟机 (VM) 扩展框架提供混合 Runbook 辅助角色的本机集成。 Azure VM 代理负责在 Windows 和 Linux VM 上管理 Azure VM 上的扩展,而 Azure Connected Machine 代理负责管理非 Azure 计算机(包括启用了 Azure Arc 的服务器)上的扩展。 目前,Azure 自动化支持两个混合 Runbook 辅助角色安装平台。
平台 | 说明 |
---|---|
基于扩展 (V2) | 使用混合 Runbook 辅助角色 VM 扩展安装,无需依赖于 Log Analytics 代理向 Azure Monitor Log Analytics 工作区报告。 此平台是建议的平台。 |
基于代理 (V1) | 在 Log Analytics 代理向 Azure Monitor Log Analytics 工作区报告完成后安装。 |
对于安装后的混合 Runbook 辅助角色操作,在混合 Runbook 辅助角色上执行 Runbook 的过程是相同的。 基于扩展的方法旨在简化混合 Runbook 辅助角色的安装和管理,并消除使用基于代理的版本的复杂性。 基于扩展的新安装不会影响基于代理的混合 Runbook 辅助角色的安装或管理。 这两种混合 Runbook 辅助角色类型可以在同一台计算机上共存。
基于扩展的混合 Runbook 辅助角色仅支持用户混合 Runbook 辅助角色类型,不包括更新管理功能所需的系统混合 Runbook 辅助角色。
基于扩展的用户混合辅助角色的优势
基于扩展的方法极大地简化了用户混合 Runbook 辅助角色的安装和管理,这样就无需使用复杂的基于代理的方法。 下面是一些主要优势:
- 无缝加入 - 基于代理的混合 Runbook 辅助角色加入方法依赖于 Log Analytics 代理,此过程步骤多、耗时且容易出错。 基于扩展的方法不再依赖于 Log Analytics 代理。
- 易于管理 - 与混合 Runbook 辅助角色的 ARM 标识进行本机集成,通过策略和模板提供大规模治理的灵活性。
- 基于 Microsoft Entra ID 的身份验证 � 该方法使用 Microsoft Entra ID 提供的由 VM 系统分配的托管标识。 这将集中控制和管理标识和资源凭据。
- 统一体验 - 为管理 Azure 和启用了 Arc 的非 Azure 计算机提供相同的体验。
- 多个加入渠道 - 可以选择通过 Azure 门户、PowerShell cmdlet、Bicep、ARM 模板、REST API 和 Azure CLI 来加入和管理基于扩展的辅助角色。 还可以在该计算机的 Azure 门户体验中,通过“扩展”边栏选项卡在现有 Azure VM 或已启用 Arc 的服务器上安装扩展。
- 默认自动升级 - 默认提供次要版本的自动升级,大大降低了保持最新版本更新的可管理性。 建议启用自动升级,以利用任何安全或功能更新,免除人工开销。 也可随时选择推出自动升级。 当前不支持任何主版本升级,应对其进行手动管理。
Runbook 辅助角色类型
有两种类型的 Runbook 辅助角色 - 系统和用户。 下表描述了它们之间的差异。
类型 | 说明 |
---|---|
系统 | 支持由更新管理功能使用的一组隐藏 Runbook,这些 Runbook 专门用于在 Windows 和 Linux 计算机上安装用户指定的更新。 此类型的混合 Runbook 辅助角色不是混合 Runbook 辅助角色组的成员,因此不会运行面向 Runbook 辅助角色组的 Runbook。 |
用户 | 支持预期在 Windows 和 Linux 计算机上直接运行的用户定义 runbook。 |
基于代理 (V1) 的混合 Runbook 辅助角色依赖于 Log Analytics 代理向 Azure Monitor Log Analytics 工作区报告。 该工作区不只是用于收集计算机中的监视数据,还可以用于下载安装基于代理的混合 Runbook 辅助角色所需的组件。
启用 Azure 自动化更新管理后,连接到 Log Analytics 工作区的任何计算机都会自动配置为系统混合 Runbook 辅助角色。 要将其配置为用户 Windows 混合 Runbook 辅助角色,请参阅在自动化中部署基于代理的 Windows 混合 Runbook 辅助角色,对于 Linux,请参阅在自动化中部署基于代理的 Linux 混合 Runbook 辅助角色。
Runbook 辅助角色限制
下表显示了自动化帐户中系统和用户混合 Runbook 辅助角色的最大数目。 如果要管理的计算机超过 4,000 台,建议创建其他自动化帐户。
辅助角色类型 | 每个自动化帐户支持的最大数目。 |
---|---|
系统 | 4000 |
用户 | 4000 |
它是如何工作的?
每个用户混合 Runbook 辅助角色都是你在安装该辅助角色时指定的混合 Runbook 辅助角色组的成员。 一个组可以只包含一个辅助角色,但也可以在一个组中包含多个辅助角色,以实现高可用性。 每台计算机都可以托管一个向单个自动化帐户报告的混合 Runbook 辅助角色;你无法跨多个自动化帐户注册混合辅助角色。 混合辅助角色只能侦听单个自动化帐户中的作业。
对于托管系统混合 Runbook 辅助角色(由更新管理进行管理)的计算机,可以将其添加到混合 Runbook 辅助角色组。 但必须对更新管理和混合 Runbook 辅助角色组成员身份使用同一自动化帐户。
具有混合 Runbook 辅助角色的混合辅助角色组旨在通过跨多个辅助角色分配作业来实现高可用性和负载均衡。 若要成功执行 runbook,混合辅助角色必须正常运行并发出检测信号。 混合辅助角色使用轮询机制来选取作业。 如果混合辅助角色组中没有一个辅助角色在过去 30 分钟内 ping 自动化服务,则表示该组没有任何活动辅助角色。 在这种情况下,作业将在三次重试后暂停。
在用户混合 Runbook 辅助角色上启动 runbook 时,请指定运行它的组,不能指定特定的辅助角色。 组中每个活动的混合辅助角色每 30 秒轮询一次作业,以查看是否有可用的作业。 辅助角色按照先到先得的原则选取作业。 由混合辅助角色组中先 ping 自动化服务的混合辅助角色选取该作业,具体取决于作业推送时间。 作业队列的处理时间也取决于混合辅助角色硬件配置文件和负载。
通常,单个混合辅助角色在每次执行 ping 操作时(即每隔 30 秒)可选取 4 个作业。 如果推送作业的速率高于每 30 秒 4 次并且没有其他辅助角色选取该作业,则该作业可能会暂停并显示错误。
对于磁盘空间、内存或网络套接字,混合 Runbook 辅助角色没有许多 Azure 沙盒资源限制。 对混合辅助角色的限制仅与辅助角色自己的资源有关,并且它们不受 Azure 沙盒的公平共享时间限制的约束。
若要控制如何在混合 Runbook 辅助角色上分发 Runbook 以及何时或如何触发作业,可以针对自动化帐户中不同的混合 Runbook 辅助角色组注册混合辅助角色。 针对特定组或组指定目标作业,以支持执行排列。
用户混合 Runbook 辅助角色的常见方案
- 执行 Azure 自动化 runbook,直接在注册为已启用 Azure Arc 的服务器的现有 Azure 虚拟机 (VM) 和非 Azure 服务器上进行来宾内 VM 管理。 已启用 Azure Arc 的服务器可以是 Windows 和 Linux 物理服务器和虚拟机,它们托管在 Azure 外部(在公司网络或其他云提供商处)。
- 克服 Azure 自动化沙盒限制 - 常见方案包括对云作业执行超过三小时限制的长时间运行操作、执行资源密集型自动化操作、与本地或混合环境中运行的本地服务交互,以及运行需要提升权限的脚本。
- 出于治理和安全原因,克服组织限制以在 Azure 中保留数据 - 由于无法在云端执行自动化作业,可以在作为混合 Runbook 辅助角色加入的本地计算机上运行该作业。
- 在运行本地或多云环境的多个非 Azure 资源上自动执行操作。 可以将其中一台计算机作为用户混合 Runbook 辅助角色加入,并在本地环境中的其余计算机上以自动化为目标。
- 如需通过 Azure 虚拟网络 (VNet) 以私密方式访问其他服务,而不打开出站 Internet 连接,可以在连接到 Azure VNet 的混合辅助角色上执行 Runbook。
混合 Runbook 辅助角色安装
安装用户混合 Runbook 辅助角色的过程取决于操作系统。 下表定义了部署类型。
操作系统 | 部署类型 |
---|---|
Windows | 自动 手动。 |
Linux | 手动 |
任一个 | 对于用户混合 Runbook 辅助角色,请参阅在自动化中部署基于扩展的 Windows 或 Linux 用户混合 Runbook 辅助角色。 这是建议的方法。 |
注意
VM 规模集目前不支持混合 Runbook 辅助角色。
网络规划
查看 Azure 自动化网络配置,以了解有关混合 Runbook 辅助角色所需的端口、URL 和其他网络的详细信息。
使用代理服务器
如果使用代理服务器在 Azure 自动化与运行 Log Analytics 代理的计算机之间通信,请确保能够访问相应的资源。 来自混合 Runbook 辅助角色和自动化服务的请求的超时为 30 秒。 三次尝试后,请求失败。
防火墙使用
如果使用防火墙来限制对 Internet 的访问,则必须将防火墙配置为允许访问。 如果将 Log Analytics 网关用作代理,请确保为混合 Runbook 辅助角色配置 Log Analytics 网关。 请参阅为自动化混合 Runbook 辅助角色配置 Log Analytics 网关。
服务标记
Azure 自动化从服务标记 GuestAndHybridManagement 开始支持 Azure 虚拟网络服务标记。 可以在网络安全组或 Azure 防火墙中使用服务标记来定义网络访问控制。 创建安全规则时,可以使用服务标记代替特定 IP 地址。 在规则的相应源或目标字段中指定服务标记名称(例如 GuestAndHybridManagement),可以允许或拒绝自动化服务的流量。 此服务标记不支持通过将 IP 范围限制到特定区域来实现更精细控制的方法。
Azure 自动化服务的服务标记仅提供用于以下场景的 IP:
- 从虚拟网络内触发 Webhook
- 允许混合 Runbook 辅助角色或 VNet 中的 State Configuration 代理与自动化服务通信
注意
服务标记 GuestAndHybridManagement 当前不支持在 Azure 沙盒中执行 runbook 作业,仅允许直接在混合 Runbook 辅助角色中执行。
混合 Runbook 辅助角色的更新管理地址
除了混合 Runbook 辅助角色所需的标准地址和端口,更新管理还具有网络规划部分下所述的其他网络配置要求。
混合 Runbook 辅助角色上的 Azure Automation State Configuration
可以在混合 Runbook 辅助角色上运行 Azure Automation State Configuration。 若要管理支持混合 Runbook 辅助角色的服务器的配置,必须将这些服务器添加为 DSC 节点。 请参阅启用要通过 Azure Automation State Configuration 进行管理的计算机。
混合 Runbook 辅助角色上的 Runbook
可以使用 Runbook 来管理本地计算机上的资源,或者针对部署了用户混合 Runbook 辅助角色的本地环境中的资源运行 Runbook。 在这种情况下,可以选择在混合辅助角色上(而不是在自动化帐户中)运行 Runbook。 在混合 Runbook 辅助角色上运行的 Runbook 与在自动化帐户中运行的 Runbook 具有相同的结构。 请参阅在混合 Runbook 辅助角色上运行 Runbook。
混合 Runbook 辅助角色作业
混合 Runbook 辅助角色作业在 Windows 上的本地系统帐户下运行,或在 Linux 上的 nxautomation 帐户下运行。 Azure 自动化处理混合 Runbook 辅助角色上的作业的方式不同于处理 Azure 沙盒中运行的作业的方式。 请参阅Runbook 执行环境。
如果混合 Runbook 辅助角色托管计算机重新启动,则任何正在运行的 Runbook 将从头重启,或者从 PowerShell 工作流 Runbook 的最后一个检查点重启。 如果某个 Runbook 作业重启了 3 次以上,则它会暂停。
混合 Runbook 辅助角色的 Runbook 权限
由于在用户混合 Runbook 辅助角色上运行的 Runbook 可访问非 Azure 资源,因此无法使用通常由 Runbook 对 Azure 资源进行身份验证时所用的身份验证机制。 Runbook 可以针对本地资源提供其自己的身份验证,也可以配置使用 Azure 资源的托管标识的身份验证。 还可以指定运行方式帐户,为所有 Runbook 提供用户上下文。
查看系统混合 Runbook 辅助角色
在 Windows 或 Linux 计算机上启用“更新管理”功能之后,可以在 Azure 门户中以清单形式列出系统混合 Runbook 辅助角色组的内容。 你可以在门户中查看最多 2,000 个辅助角色,方法是从所选自动化帐户的左侧窗格的“混合辅助角色组”选项中选择“系统混合辅助角色组”选项卡。
如果混合辅助角色超过 2000 个,则若要获取所有这些辅助角色的列表,可运行以下 PowerShell 脚本:
Get-AzSubscription -SubscriptionName "<subscriptionName>" | Set-AzContext
$workersList = (Get-AzAutomationHybridWorkerGroup -ResourceGroupName "<resourceGroupName>" -AutomationAccountName "<automationAccountName>").Runbookworker
$workersList | export-csv -Path "<Path>\output.csv" -NoClobber -NoTypeInformation
后续步骤
若要了解如何配置 Runbook,使本地数据中心或其他云环境中的过程自动化,请参阅在混合 Runbook 辅助角色上运行 Runbook。
若要了解如何对混合 Runbook 辅助角色进行故障排除,请参阅排查混合 Runbook 辅助角色问题。