Azure Automation混合runbook管理本地资
更新:HHH   时间:2023-1-7


    之前其实写到过很多篇关于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有区别的地方


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

    



返回云计算教程...