千家信息网

Azure Automation混合runbook管理本地资

发表于:2024-11-30 作者:千家信息网编辑
千家信息网最后更新 2024年11月30日,之前其实写到过很多篇关于Azure Automationd的应用,如果想在云上跑一些定时的任务,automation是个不错的选择,但是之前写的博客里实现的场景也都是做一些和云上相关的操作,那么如果我
千家信息网最后更新 2024年11月30日Azure Automation混合runbook管理本地资

之前其实写到过很多篇关于Azure Automationd的应用,如果想在云上跑一些定时的任务,automation是个不错的选择,但是之前写的博客里实现的场景也都是做一些和云上相关的操作,那么如果我们想把云和本地打通,使用automation去管理本地的机器呢?其实也是可以实现的,我们可以使用automation中的hybrid worker来做这个事,因为automation本身是没有我们on premise机器的credential的,所以我们需要借助于agent来实现这个功能


可以先来看一下微软关于这方面的介绍

Azure 自动化中的 Runbook 可能无权访问其他云或本地环境中的资源,因为它们在 Azure 云平台中运行。 利用 Azure 自动化的混合 Runbook 辅助角色功能,既可以直接在计算机上运行 Runbook,也可以对环境中的资源运行 Runbook,从而管理这些本地资源。 Runbook 在 Azure 自动化中进行存储和管理,然后发送到一台或多台指定的计算机。


混合runbook的整体架构可以参考下图,混合runbook其实还要借助Log Analystics来实现,安装完成后,会看到Log Analystics的control panel



总的来说其实架构并不复杂,下边来说说混合runbook能帮我们解决什么问题,在服务器数量很少的时候其实体现的不明显,但是如果服务器很多的时候,比如我们有很多台数据库服务器,我们在每台服务器上都跑了定时任务进行数据库备份,但是这种分散的备份脚本不利于统一的管理,不管是开启/暂停,还是做一些修改,又或者是说要查看脚本执行的情况,都需要把管理任务分散到每一台服务器上去看,但是如果通过统一的hybrid runbook去做,我们就相当于有了一个统一的脚本执行的平台,所有这些任务都可以在这个平台上去完成


这只是一个简单的说明,类似地场景还有很多,下面我们来看下如何部署hybrid worker

总体来讲我们可以分为三个步骤:

1.部署automation account

2.部署Log Analytics

3.部署hybrid worker


首先先把automation account创建出来


创建完成后可以看到相关的信息




接下来部署Log Analytics,Log Analytics部署也很简单


可以看到这些信息就代表部署成功了





接下来就可以部署Hybrid worker了

部署Hybrid worker需要用到一个叫New-OnPremiseHybridWorker的脚本,这个脚本我们可以直接通过PowerShellGet下载到

直接通过Install-Script -Name New-OnPremiseHybridWorker进行安装即可



如果安装过程中遇到以上报错,可以尝试更新PowerShellGet module的版本

install-module PowerShellGet -Force


之后关闭PowerShell再打开尝试,报错消失,正常安装了


下边就可以开始正式部署了,这个脚本有一些参数是必须要配置的

AutomationAccountName(必需):自动化帐户的名称。

AAResourceGroupName(必需):与自动化帐户关联的资源组的名称。

OMSResourceGroupName(可选):Log Analytics 工作区的资源组的名称。 如果未指定此资源组,则使用 AAResourceGroupName 。

HybridGroupName(必需):混合 Runbook 辅助角色组的名称,可将其指定为支持此方案的 runbook 的目标。

SubscriptionID(必需):包含自动化帐户的 Azure 订阅 ID。

WorkspaceName(可选):Log Analytics 工作区名称。 如果没有 Log Analytics 工作区,该脚本会创建并配置一个。



开始部署,可以看到这里其实会下载Log Analystic的agent



完成后,可以在控制面板里看到相关的信息


之后就可以在hybrid worker group里看到刚刚注册的信息了


之后我们就可以按照正常做runbook的套路操作了,尝试来创建一个runbook



我们编写一个简单的脚本,然后发布出去



这里可以看到在run的时候是可以选择要在哪个环境里运行的,也是和之前云上的runbook有区别的地方


可以看到在服务器上已经能正常输出结果了



0