在 Azure 自动化 中部署依赖扩展的 Windows 或 Linux 用户混合 Runbook 工作器

基于扩展的加入仅适用于用户混合 Runbook 辅助角色。 本文介绍如何:在 Windows 或 Linux 计算机上部署用户混合 Runbook 辅助角色、删除辅助角色和删除混合 Runbook 辅助角色组。

有关System 混合 Runbook 工作器的入门,请参阅在自动化中部署基于代理的 Windows 混合 Runbook 工作器在自动化中部署基于代理的 Linux 混合 Runbook 工作器

可以使用 Azure 自动化 的用户混合 Runbook Worker 功能,直接在 Azure 或非 Azure 的计算机上运行 Runbook,包括已启用 Azure Arc 的服务器。 在托管角色的计算机或服务器中,可以直接运行 Runbook,并对环境中的资源运行 Runbook,从而管理这些本地资源。 Azure 自动化存储和管理 Runbook,然后将这些 Runbook 传递到一台或多台选定的计算机。 成功部署 Runbook 辅助角色后,请查看在混合 Runbook 辅助角色上运行 Runbook,了解如何配置 Runbook,使本地数据中心或其他云环境中的过程实现自动化。

注释

混合辅助角色可与两个平台共存:“基于代理(V1)”和“基于扩展(V2)” 。 如果在已运行“基于代理 (V1)”平台的混合辅助角色上安装“基于扩展 (V2)”平台,则会在组中看到两个混合 Runbook 辅助角色条目。 一个基于平台扩展(V2),另一个基于代理(V1)。 了解详细信息

先决条件

计算机最低要求

  • 双核
  • 4 GB RAM
  • Non-Azure 计算机必须安装 Azure Connected Machine agent。 若要安装 AzureConnectedMachineAgent,请参阅 从 Azure 门户将混合计算机连接到 Azure一文来获取启用 Arc 的服务器的详细信息。
  • 必须在 Azure 虚拟机和启用了 Arc 的服务器上启用系统分配的托管标识。 如果未启用系统分配的托管标识,则会在执行添加操作的过程中启用它。

受支持的操作系统

Windows (x64) Linux (x64)
• Windows Server 2022(包括服务器核心)
• Windows Server 2019(包括服务器核心)
• Windows Server 2016版本 1709 和 1803(不包括服务器核心)
• Windows Server 2012,2012 R2(不包括服务器核心)
• Windows 10 Enterprise(包括多会话)和 Pro
• Windows 11企业版(包括多会话)和 Pro
● Debian GNU/Linux 8、9、10 和 11
● Ubuntu 18.04 LTS、20.04 LTS 和 22.04 LTS
● SUSE Linux Enterprise Server 15.2、15.3、15.4、15.5 和 15.6
● Red Hat Enterprise Linux Server 7、8 和 9
● Rocky Linux 9
● Oracle Linux 7、8 和 9
混合工作者扩展将遵循操作系统供应商的支持时间线。 Linux Hybrid Runbook Worker 不支持
Python 版本 3.11+ 。

其他要求

Windows (x64) Linux (x64)
Windows PowerShell 5.1(下载 WMF 5.1)。 不支持 PowerShell Core。 不得启用 Linux 强化。 
.NET Framework 4.6.2 或更高版本。 

适用于 Linux 的包要求

所需软件包 DESCRIPTION 最低版本
Glibc GNU C 库 2.5-12
OpenSSL OpenSSL 库 1.0(支持 TLS 1.1 和 TLS 1.2)
卷曲 cURL Web 客户端 7.15.5
Python-ctypes 用于Python的外函数库 Python 2.x 或 Python 3.x 是必需的
PAM 可插入身份验证模块
可选包 DESCRIPTION 最低版本
PowerShell Core 若要运行 PowerShell runbook,需要安装 PowerShell Core。 有关说明,请参阅在 Linux 上安装 PowerShell Core 6.0.0

注释

  • 虚拟机规模集(VMSS)目前不支持混合 Runbook 辅助角色。

  • 强烈建议绝对不要在域控制器托管的虚拟机上配置 Hybrid Worker 扩展。 由于通过Azure 自动化作业向潜在的攻击途径公开域控制器的高风险性质,安全最佳做法不建议进行此类设置。 域控制器应受到高度保护,与非基本服务隔离,以防止未经授权的访问和维护Active Directory 域服务(ADDS)环境的完整性。

混合工人凭据的权限

如果基于扩展的混合辅助角色使用自定义混合辅助角色凭据,请确保向自定义用户分配以下文件夹权限,以避免作业暂停。

资源类型 文件夹权限
Azure VM C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows (读取和执行)
已启用 Arc 的服务器 C:\ProgramData\AzureConnectedMachineAgent\Tokens(读取)
C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows(读取和执行)。

注释

  • 当系统具有 UAC/LUA 时,必须直接授予权限,而不是通过任何组成员身份授予权限。 了解详细信息
  • 由于当前限制,在更新 Azure Connected Machine 代理时,这些文件夹权限将从启用Azure Arc的计算机上的 C:\ProgramData\AzureConnectedMachineAgent\Tokens 文件夹中删除。 当前解决方法是将这些权限重新应用到文件夹。 了解详细信息

自动化帐户混合服务 URL

必须检索并使用 AutomationHybridServiceURL 将混合辅助角色扩展部署到 VM/Arc 计算机。

注释

必需的 URL 是 automationHybridServiceUrl,而不是 RegistrationUrl。

可通过多种方式检索 AutomationHybridServiceUrl 的值:

  • Azure 门户Automation Account属性Automation 混合服务 URL中复制它。

  • Azure 门户Automation AccountOverviewJSON 视图复制它。
    选择最新的 API 版本,否则可能不会显示 AutomationHybridServiceUrl。

  • 以下 REST API 调用:

    GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}?api-version=2023-11-01
    
    

网络要求

使用代理服务器

如果您使用代理服务器在 Azure 自动化 和运行扩展基础混合 Runbook 工作器的计算机之间进行通信,请确保相应资源可访问。 来自混合 Runbook 辅助角色和自动化服务的请求的超时为 30 秒。 三次尝试后,请求失败。

注释

对于Azure VM 和已启用 Arc 的服务器,可以使用 PowerShell cmdlet 或 API 设置代理设置。 已启用 Arc 的 VMware vSphere VM 目前不支持此功能。

若要使用 cmdlet 安装扩展,请执行以下作:

  1. 使用以下 API 调用来获取自动化帐户的详细信息。

    GET https://management.chinacloudapi.cn/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Automation/automationAccounts/{automationAccountName}?api-version=2023-11-01
    
    

    API 调用将提供带有密钥的值:AutomationHybridServiceUrl。 在下一步中使用该 URL 在 VM 上启用扩展。

  2. 通过运行以下 PowerShell cmdlet(所需模块:Az.Compute)在 VM 上安装混合辅助角色扩展。 使用上述 API 调用提供的 properties.automationHybridServiceUrl。 确保 ProxyServer URL 不包含任何空格。

$settings = @{
    "AutomationAccountURL"  = "<automationHybridServiceUrl>";    
    "ProxySettings" = @{
        "ProxyServer" = "<ipaddress>:<port>";
        "UserName"="test";
    }
};
$protectedsettings = @{
"ProxyPassword" = "password";
};

Azure VM

Set-AzVMExtension -ResourceGroupName <VMResourceGroupName> -Location <VMLocation> -VMName <VMName> -Name "HybridWorkerExtension" -Publisher "Microsoft.Azure.Automation.HybridWorker" -ExtensionType HybridWorkerForWindows -TypeHandlerVersion 1.1 -Settings $settings -ProtectedSettings $protectedsettings -EnableAutomaticUpgrade $true/$false

启用 Azure Arc 的虚拟机

New-AzConnectedMachineExtension -ResourceGroupName <VMResourceGroupName> -Location <VMLocation> -MachineName <VMName> -Name "HybridWorkerExtension" -Publisher "Microsoft.Azure.Automation.HybridWorker" -ExtensionType HybridWorkerForWindows -TypeHandlerVersion 1.1 -Setting $settings -ProtectedSetting $protectedsettings -NoWait -EnableAutomaticUpgrade

防火墙使用

如果使用防火墙来限制对 Internet 的访问,则必须将防火墙配置为允许访问。 混合 Runbook Worker 和 Automation State Configuration 需要以下端口和 URL,以便与 Azure 自动化 通信。

资产 DESCRIPTION
港口 443(用于出站 Internet 访问)
全局 URL *.azure-automation.cn

CPU 配额限制

配置基于扩展的 Linux 混合 Runbook 辅助角色时,CPU 配额限制为 25%。 Windows 混合 Runbook 执行者没有此类限制。

创建混合工作组

若要在 Azure 门户中创建混合工作人员组,请执行以下步骤:

  1. 登录到 Azure 门户

  2. 返回到自动化帐户。

  3. “进程自动化”下,选择 “混合辅助角色组”。

  4. 选择 “+ 创建混合工作者组”。

    显示在门户中选择混合辅助角色组选项的屏幕截图。

  5. 基本信息选项卡上的名称文本框中,输入您的混合工作组的名称。

  6. 对于“使用混合辅助角色凭据”选项:

    • 如果选择默认,则会使用本地系统帐户安装混合扩展。
    • 如果选择自定义,请从下拉列表中选择凭据资产。
  7. 选择 下一步 转到 混合工作者 选项卡。可以选择 Azure 虚拟机,或 Azure Arc 启用的服务器,添加到此混合工作者组。 如果不选择任何计算机,系统将创建一个空的混合辅助角色组。 以后你仍可以添加设备。

    显示在“基本信息”选项卡中输入名称和凭据的屏幕截图。

  8. 选择添加计算机以访问将计算机添加作为混合工作器页。 你只会看到不属于任何其他混合工作组的计算机。

  9. 选中要添加到混合工作组的机器旁边的复选框。 如果未在列表中看到您的非 Azure 计算机,请确保设备上安装了 Azure Arc Connected Machine 代理。

  10. 选择 并添加

  11. 选择下一步转到查看 + 创建选项卡 。

  12. 选择 创建

    混合辅助角色扩展将安装在该计算机上,并且混合辅助角色将注册到混合辅助角色组。 将混合工作者添加到组是即时的,而扩展的安装可能需要几分钟。 选择刷新查看新组。 选择组名以查看混合工作者详细信息。

    注释

    如果所选计算机已是另一个混合辅助角色组的一部分,则不会将其添加到混合辅助角色组。

将计算机添加到混合辅助角色组

还可以将计算机添加到现有的混合工作组。

  1. “进程自动化”下,选择 “混合辅助角色组 ”,然后选择现有的混合辅助角色组,转到 “混合辅助角色组 ”页。

  2. 混合辅助角色组下,选择混合辅助角色

  3. 选择 “+ 添加” 以转到 “将计算机添加为混合工作器” 页面。 你只会看到不属于任何其他混合工作组的计算机。

    显示用于将计算机添加到现有组的“添加”按钮的屏幕截图。

  4. 选中要添加到混合工作组的机器旁边的复选框。

    如果未看到您的非Azure计算机列出,请确保计算机上安装了Azure Arc Connected Machine 代理程序。 若要安装AzureConnectedMachineAgent,请参阅 从 Azure 门户连接混合计算机到 Azure,适用于已启用 Arc 的服务器。

  5. 选择添加将计算机添加到组中。

    添加后,可以看到计算机类型Azure虚拟机、Server-Azure Arc。 “平台”字段显示辅助角色为“基于代理 (V1)”或“基于扩展 (V2)”

    显示“基于代理”或“基于扩展”的“平台”字段的屏幕截图。

将现有基于代理的混合辅助角色迁移到基于扩展的混合辅助角色

若要利用基于扩展的混合辅助角色的优势,必须将所有现有基于代理的用户混合辅助角色迁移到基于扩展的辅助角色。 混合工作机可以在基于代理(V1)和基于扩展(V2)的平台上共存。 基于扩展的安装不会影响基于代理的工作实例的安装或管理。

若要在基于代理的现有混合辅助角色上安装混合辅助角色扩展,请确保在执行以下步骤之前满足先决条件

  1. 在“流程自动化”下选择“混合工作组”,然后选择现有的混合工作组以进入“混合工作组”页面。
  2. 混合工作人员组下,选择混合工作人员>+ 添加以转到将计算机添加为混合工作人员页面。
  3. 选中现有“基于代理(V1)”的混合辅助角色旁边的复选框。
  4. 选择“添加”将计算机附加到组中。

“平台”列会将同一混合辅助角色显示为“基于代理 (V1)”和“基于扩展 (V2)”。 熟练使用基于扩展的混合辅助角色体验后,可以删除基于代理的辅助角色。

若要大规模迁移多个基于代理的混合辅助角色,还可以使用其他 channels,例如 - Bicep、ARM 模板、PowerShell cmdlet、REST API 和 Azure CLI。

删除混合 Runbook 辅助角色

可以从门户删除混合 Runbook 辅助角色。

  1. 流程自动化下,选择混合工作组,然后选择你的混合工作组进入混合工作组页面。

  2. 混合辅助角色组下,选择混合辅助角色

  3. 选中要从混合工作者组中删除的计算机旁边的复选框。

  4. 选择 删除

    将在对话框中显示一条警告: 删除混合辅助角色 ,即所选混合辅助角色将被永久删除。 选择 删除。 此操作将从门户中删除“基于扩展 (V2)”辅助角色的扩展,或删除“基于代理 (V1)”条目。 但是,它会在 VM 上保留失效的混合工作器。 若要手动卸载代理,请参阅 “卸载代理”。

    显示从现有组中删除虚拟机的屏幕截图。

    注释

    • 混合辅助角色可与两个平台共存:“基于代理(V1)”和“基于扩展(V2)” 。 如果在已运行“基于代理 (V1)”平台的混合辅助角色上安装“基于扩展 (V2)”平台,则会在组中看到两个混合 Runbook 辅助角色条目。 一个条目使用“基于扩展(V2)”平台,另一个使用“基于代理(V1)”平台

    • 在自动化帐户中禁用专用链接后,移除混合 Runbook 工作器可能需要长达 60 分钟。
    • 可以从 HKLM\SOFTWARE\Microsoft\Azure\HybridWorker\Parameters 中的“Http Connection Proxy Url”删除 Hybrid Runbook Worker 代理设置。

删除混合 Runbook 辅助角色组

可以从门户删除空的混合 Runbook 辅助角色组。

  1. 流程自动化下选择混合工作组,然后选择你的混合工作组,跳转到混合工作组页。

  2. 选择 删除

    此时会显示一条警告消息,用于删除任何在混合辅助角色中定义为混合辅助角色的计算机。 如果已将某个辅助角色添加到该组,则必须先从该组中删除该辅助角色。

  3. 选择 “是”

    该混合工作组将被删除。

自动升级扩展

混合助手扩展程序默认支持自动升级次版本。 建议启用自动升级,以利用任何安全或功能更新,而无需手动开销。 但是,若要防止扩展自动升级(例如,如果存在严格的更改窗口且只能在特定时间更新),可以通过将 ARM、Bicep 文件、PowerShell cmdlets 中的 enableAutomaticUpgrade 属性设置为 false,以禁用此功能。 每当要重新启用自动升级时,将同一属性设置为 true

$extensionType = "HybridWorkerForLinux/HybridWorkerForWindows"
$extensionName = "HybridWorkerExtension"
$publisher = "Microsoft.Azure.Automation.HybridWorker"
Set-AzVMExtension -ResourceGroupName <RGName> -Location <Location>  -VMName <vmName> -Name $extensionName -Publisher $publisher -ExtensionType $extensionType -TypeHandlerVersion 1.1 -Settings $settings -EnableAutomaticUpgrade $true/$false

必须手动管理主版本升级。 使用最新的 TypeHandlerVersion 运行以下 cmdlet。

注释

如果在公共预览版期间安装了混合辅助角色扩展,请确保将其升级到最新的主版本。

Azure VM

Set-AzVMExtension -ResourceGroupName <VMResourceGroupName> -Location <VMLocation> -VMName <VMName> -Name "HybridWorkerExtension" -Publisher "Microsoft.Azure.Automation.HybridWorker" -ExtensionType HybridWorkerForWindows -TypeHandlerVersion 1.1 -Settings $settings -EnableAutomaticUpgrade $true/$false

Azure Arc 启用的虚拟机

New-AzConnectedMachineExtension -ResourceGroupName <VMResourceGroupName> -Location <VMLocation> -MachineName <VMName> -Name "HybridWorkerExtension" -Publisher "Microsoft.Azure.Automation.HybridWorker" -ExtensionType HybridWorkerForWindows -TypeHandlerVersion 1.1 -Setting $settings -NoWait -EnableAutomaticUpgrade

使用 Bicep 和 ARM 模板、REST API、Azure CLI 和 PowerShell 管理混合工作器扩展

可以使用 PowerShell cmdlet 创建新的混合辅助角色组、创建新的Azure VM、将其添加到现有的混合辅助角色组并安装混合辅助角色扩展。

按照下面提到的作为示例的步骤进行操作:

  1. 创建混合工人组。

        New-AzAutomationHybridRunbookWorkerGroup -AutomationAccountName "Contoso17" -Name "RunbookWorkerGroupName" -ResourceGroupName "ResourceGroup01" 
    
  2. 创建Azure VM 或已启用 Arc 的服务器,并将其添加到上面创建的混合辅助角色组。 使用以下命令将现有的Azure VM 或已启用 Arc 的服务器添加到混合辅助角色组。 生成新的 GUID 并将其作为混合工作器的名称传递。 若要提取 vmResourceId,请转到 Azure 门户上 VM 的 Properties 选项卡。

      #To fetch vmResourceId, go to the Properties tab of the VM on Azure portal.
      $hwVM = "VmResourceId"
    
      # Generate a new GUID and pass it as the name of the Hybrid Worker
      $hwguid = New-Guid
    
      # Create the Hybrid Worker
      New-AzAutomationHybridRunbookWorker `
     -Name $hwguid `
     -VmResourceId $hwVM `
     -HybridRunbookWorkerGroupName "RunbookWorkerGroupName" `
     -AutomationAccountName "Contoso17" `
     -ResourceGroupName "AutomationAccountResourceGroup01"
    
  3. 按照此处的步骤在 VM 上启用系统分配的托管标识。

  4. 在 VM 上安装混合辅助角色扩展。

    注释

    如果要添加代理服务器,请参阅 代理服务器的使用

      $settings = @{
    "AutomationAccountURL"  = "<automationHybridServiceUrl>";
    };
    

    Azure VM

     Set-AzVMExtension -ResourceGroupName <VMResourceGroupName> -Location <VMLocation> -VMName <VMName> -Name "HybridWorkerExtension" -Publisher "Microsoft.Azure.Automation.HybridWorker" -ExtensionType HybridWorkerForWindows -TypeHandlerVersion 1.1 -Settings $settings -EnableAutomaticUpgrade $true/$false
    

    Azure Arc 启用的虚拟机

      New-AzConnectedMachineExtension -ResourceGroupName <VMResourceGroupName> -Location <VMLocation> -MachineName <VMName> -Name "HybridWorkerExtension" -Publisher "Microsoft.Azure.Automation.HybridWorker" -ExtensionType HybridWorkerForWindows -TypeHandlerVersion 1.1 -Setting $settings -NoWait -EnableAutomaticUpgrade
    
  5. 若要确认是否已在 VM 上成功安装扩展,请在 Azure 门户中,转到 VM >Extensions 选项卡并检查 VM 上安装的混合辅助角色扩展的状态。

管理混合工作器扩展

可以使用以下 PowerShell cmdlet 来管理混合 Runbook 辅助角色和混合 Runbook 辅助角色组:

PowerShell cmdlet DESCRIPTION
Get-AzAutomationHybridRunbookWorkerGroup 获取混合 Runbook 工作器组
Remove-AzAutomationHybridRunbookWorkerGroup 删除混合 Runbook Worker 组
Set-AzAutomationHybridRunbookWorkerGroup 使用混合辅助角色凭据更新混合辅助角色组
New-AzAutomationHybridRunbookWorkerGroup 创建新的混合 Runbook 工作器组
Get-AzAutomationHybridRunbookWorker 获取混合 Runbook 辅助角色
Move-AzAutomationHybridRunbookWorker 将混合工作者从一个组移到另一个组
New-AzAutomationHybridRunbookWorker 创建新的混合 Runbook 辅助角色
Remove-AzAutomationHybridRunbookWorker 删除混合 Runbook 工作器

创建新的混合 Runbook 辅助角色后,必须在该混合辅助角色上安装扩展。

混合作业器扩展设置

$settings = @{
    "AutomationAccountURL"  = "<automationHybridServiceUrl>";
};

Azure VM

Set-AzVMExtension -ResourceGroupName <VMResourceGroupName> -Location <VMLocation> -VMName <VMName> -Name "HybridWorkerExtension" -Publisher "Microsoft.Azure.Automation.HybridWorker" -ExtensionType HybridWorkerForWindows -TypeHandlerVersion 1.1 -Settings $settings -EnableAutomaticUpgrade $true/$false

已启用 Azure Arc 的 VM

New-AzConnectedMachineExtension -ResourceGroupName <VMResourceGroupName> -Location <VMLocation> -MachineName <VMName> -Name "HybridWorkerExtension" -Publisher "Microsoft.Azure.Automation.HybridWorker" -ExtensionType HybridWorkerForWindows -TypeHandlerVersion 1.1 -Setting $settings -NoWait -EnableAutomaticUpgrade

管理混合工作组和混合工作者的角色权限

可以创建自定义Azure 自动化角色,并向混合辅助角色组和混合辅助角色授予以下权限。 若要详细了解如何创建Azure 自动化自定义角色,请参阅 Azure 自定义角色

行动 说明
Microsoft。Automation/automationAccounts/hybridRunbookWorkerGroups/read 读取混合 Runbook 辅助角色组。
Microsoft。Automation/automationAccounts/hybridRunbookWorkerGroups/write 创建混合 Runbook 辅助角色组。
Microsoft。Automation/automationAccounts/hybridRunbookWorkerGroups/delete 删除混合 Runbook 辅助角色组。
Microsoft。Automation/automationAccounts/hybridRunbookWorkerGroups/hybridRunbookWorkers/read 读取混合 Runbook 辅助角色。
Microsoft。Automation/automationAccounts/hybridRunbookWorkerGroups/hybridRunbookWorkers/write 创建混合 Runbook 辅助角色。
Microsoft。Automation/automationAccounts/hybridRunbookWorkerGroups/hybridRunbookWorkers/move/action 将混合 Runbook 辅助角色从一个辅助角色组移到另一个组。
Microsoft。Automation/automationAccounts/hybridRunbookWorkerGroups/hybridRunbookWorkers/delete 删除混合 Runbook 辅助角色。

检查混合辅助角色的版本

检查基于扩展的混合 Runbook 辅助角色的版本:

OS 类型 路径 DESCRIPTION
Windows C:\Packages\Plugins\Microsoft.Azure.Automation.HybridWorker.HybridWorkerForWindows\ 路径中有一个版本文件夹,包含版本信息。
Linux /var/lib/waagent/Microsoft.Azure.Automation.HybridWorker.HybridWorkerForLinux-<version> 文件夹名称以 版本 信息结尾。

后续步骤