管理 Service Management Automation 的 Runbook
作为 Service Management Automation (SMA) 管理员,需要配置和运行 Runbook。 包括设置 Runbook 辅助角色以及计划和跟踪 Runbook 在内的活动。 除了你创作的 Runbook 之外,SMA 还包括两个系统 Runbook:
- DiscoverAllLocalModules:安装 Runbook 辅助角色后立即运行。 此 Runbook 可发现安装了 Runbook 辅助角色的 Windows Server 系统上的所有本机模块。 它提取这些模块的活动和活动元数据,以便在Microsoft Azure Pack 中创作 Runbook 时使用其活动。
- SetAutomationModuleActivityMetadata:在将模块导入 SMA 后立即运行。 此 Runbook 从新导入的模块中提取活动和活动元数据,以便在 Microsoft Azure Pack 中创作 Runbook 时使用其活动。
配置 Runbook 辅助角色
默认情况下,在 SMA 中启动 Runbook 作业时,随机 Runbook 辅助角色会选取该作业。 但是,你可能想要使用特定的 Runbook 辅助角色。 为此,请使用 RunbookWorker 属性。 详细了解 Runbook 执行。
使用 PowerShell ISE 加载项指定 Runbook 辅助角色。
- 在 SMA ISE 加载项 >配置中,使用 SMA 帐户登录。 登录后,可以在“Runbook”选项卡中查看 Runbook。
- 在 “Runbook” 选项卡中,选择要针对特定 Runbook 辅助角色运行的一个或多个 Runbook。
- 选择“配置”,然后在“配置 Runbook 属性”中,从下拉菜单中选择 Runbook 辅助角色。
- 选择“ 进行更改”。
通过 SMA PowerShell 模块指定 Runbook 辅助角色
还可以使用以下命令行命令设置 Runbook 辅助角色属性:
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Sample-TestRunbook"
$workerName = "Worker1"
Set-SmaRunbookConfiguration -WebServiceEndpoint $webServer -Port $port -Name $runbookName -RunbookWorker $workerName
可以看到部署的所有 Runbook 辅助角色的列表,如下所示:
$webServer = 'https://MyServer'
$port = 9090
Get-SmaRunbookWorkerDeployment -WebServiceEndpoint $webServer -Port $port
注意
目前无法使用 Microsoft Azure Pack 门户来指定 Runbook 辅助角色。 使用 SMA ISE 加载项或 PowerShell cmdlet。
计划 Runbook
若要计划 Runbook 以在指定时间启动,请将其链接到一个或多个计划。 可以将计划配置为运行一次或设置为递归。 可将一个 Runbook 链接到多个计划,一个计划可以链接多个 Runbook。
创建计划
可以使用管理门户或 Windows PowerShell 创建计划。
在管理门户中创建计划
- 在管理门户中,选择“自动化” 。
- 在“资产”选项卡中,选择“添加设置>添加计划”。
- 输入新计划的名称和说明,并选择是运行 一次 还是 每日运行。
- 根据需要指定开始时间和其他选项。 开始时间的时区将匹配本地计算机的时区。
使用 Windows PowerShell 创建计划
可以使用 Set-SmaSchedule cmdlet 创建计划,或修改现有计划。 必须指定计划的开始时间,以及它应运行一次还是重复运行。
以下示例创建一个名为 “我的每日计划”的新计划。 它从目前的一天开始,每天中午持续一年。
$webServer = 'https://MyServer'
$port = 9090
$scheduleName = 'My Daily Schedule'
$startTime = (Get-Date).Date.AddHours(12)
$expiryTime = $startTime.AddYears(1)
Set-SmaSchedule -WebServiceEndpoint $webServer -Port $port -Name $scheduleName -ScheduleType OneTimeSchedule -StartTime $startTime -ExpiryTime $expiryTime -DayInterval 1
将计划链接到 Runbook
可将一个 Runbook 链接到多个计划,一个计划可以链接多个 Runbook。 如果 Runbook 具有参数,则可以提供在 Runbook 启动时要使用的值。 必须为任何必需的参数提供值。
在管理门户中链接计划
- 在管理门户中,选择 “自动化>Runbook”。
- 选择要计划的 Runbook 的名称,然后选择“ 计划 ”选项卡。
- 如果 Runbook 当前链接到计划,请选择“ 链接”。 然后选择“ 链接到新计划”,然后创建新的计划,或选择“ 链接到现有计划 ”并选择计划。
- 如果 Runbook 包含参数,系统会提示输入其值。
使用 Windows PowerShell 链接计划
可以使用具有 ScheduleName 参数的 Start-SmaRunbook 将计划链接到 Runbook。 可以使用 Parameters 参数指定值。 详细了解 参数值。
下面的示例命令演示如何将计划链接到 Runbook。
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scheduleName = "Sample-DailySchedule"
Start-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName -ScheduleName $scheduleName -Parameters $params
跟踪 Runbook
在 SMA 中启动 Runbook 时,会创建一个作业。 作业是 Runbook 的单一执行实例。 单个 Runbook 可能有多个作业,每个作业都有其自己的 Runbook 参数值集。
- 如果已填充 Runbook 的 RunbookWorker 属性,则该辅助角色服务器将为作业提供服务。
- 如果辅助角色服务器不可用,则作业将失败并出现错误。
- 如果未填充 RunbookWorker 属性,则 SMA 会随机选择一个可用的辅助角色服务器来为请求提供服务。
下图显示了 PowerShell 工作流 Runbook 的 Runbook 作业的生命周期。
下图显示了 PowerShell 脚本 Runbook 的 Runbook 作业的生命周期。
作业状态
下表描述了作业的各种可能状态。
状态 | 说明 |
---|---|
已完成 | 作业已成功完成。 |
已失败 | 作业结束时出现异常。 |
已排队 | 作业正在等待提供自动化工作线程的资源,以便能够启动。 |
正在启动 | 作业已分配给工作线程,并且系统正在将它启动。 |
正在恢复 | 系统正在恢复已暂停的作业。 |
正在运行 | 作业正在运行。 |
已停止 | 作业在完成之前已被用户停止。 |
正在停止 | 系统正在停止作业。 |
已挂起 | 作业已被用户、系统或 Runbook 中的命令暂停。 可以再次启动挂起的作业。 它从其最后一个检查点恢复,或者从 Runbook 的开头恢复(如果它没有检查点)。 仅当出现可能恢复的异常时,系统才会挂起 Runbook。 默认情况下, ErrorActionPreference 设置为 “继续”,这意味着作业在发生异常时会继续运行。 如果此变量设置为 “停止”,则会在发生异常时暂停作业。 |
暂停中 | 系统尝试在用户请求时暂停作业。 Runbook 只有在达到其下一个检查点后才能挂起。 如果它已通过其最后一个检查点,则它完成,然后才能暂停。 |
在管理门户中查看作业状态
自动化仪表板显示 SMA 环境中所有 Runbook 的摘要。
- 摘要图表显示在给定的天数或小时数内,进入每种状态的所有 Runbook 的作业总数。
- 可以在图表右上角选择时间范围。
- 图表的时间轴根据所选时间范围的类型更改。
- 可以通过单击屏幕顶部的行来选择是否显示特定状态的行。
如下所示显示仪表板:
- 在管理门户中,选择“自动化” 。
- 选择“仪表板”选项卡 。
显示仪表板
Runbook 仪表板显示单个 Runbook 的摘要。 摘要图表显示在给定的天数或小时数内,进入每种状态的 Runbook 的作业总数。 可以选择图形右上角的时间范围。 图表的时间轴根据所选时间范围的类型更改。 可以通过单击屏幕顶部的行来选择是否显示特定状态的行。
如下所示显示仪表板:
- 在管理门户中,选择“自动化” 。
- 选择 Runbook 的名称。
- 选择“仪表板”选项卡 。
查看作业详细信息
可以查看为特定 Runbook 创建的所有作业的列表及其最新状态。
- 可以按作业状态和上次更改作业的日期范围筛选列表。
- 选择作业的名称以查看其详细信息及其输出。
- 作业的详细视图包括提供给该作业的 Runbook 参数值。
- 作业历史记录包括输出、警告和错误消息,并附有记录创建时间的时间戳。
- 详细了解 Runbook 输出和消息。
- 作业的源是运行作业时工作流的源代码。 如果在运行作业之后更新了 Runbook,则该源可能与 Runbook 当前版本的不同。
可以使用以下步骤查看 Runbook 的作业。
- 在管理门户中,选择“自动化” 。
- 选择 Runbook 的名称,然后选择“ 作业 ”选项卡。
- 选择 作业的“作业创建 ”列以查看其详细信息和输出。
- 选择 “历史记录” 选项卡以查看作业的历史记录。 选择历史记录,然后选择 屏幕底部的“查看详细信息 ”以获取记录的详细视图。
- 在“历史记录”选项卡中,选择“查看源”。
使用 Windows PowerShell 检索作业状态
可以使用 Get SmaJob 来检索为某个 Runbook 而创建的作业和某个特定作业的详细信息。
- 如果使用 Start-SmaRunbook 通过 Windows PowerShell 启动 Runbook,则会返回生成的作业。
- 使用 Get-SmaJobOutput 获取作业的输出。
以下示例命令检索示例 Runbook 的最后一个作业,并显示其状态、为 Runbook 参数提供的值以及作业的输出。
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$job = (Get-SmaJob -WebServiceEndpoint $webServer -Port $port -RunbookName $runbookName | sort LastModifiedDate -desc)[0]
$job.Status
$job.JobParameters
Get-SmaJobOutput -WebServiceEndpoint $webServer -Port $port -Id $job.Id -Stream Output
配置 Runbook 设置
每个 Runbook 都有多个设置。 可以使用这些设置来帮助查找和管理 Runbook。 还可以通过配置这些设置来更改 Runbook 日志记录。 下面介绍了上述每个设置,然后是有关如何修改这些设置的过程。
名称和说明
创建 Runbook 后,无法更改该 Runbook 的名称。 “描述” 为可选并最多可以含有 512 个字符。
标记
使用标记可以指定不同的单词和短语用于帮助标识 Runbook。 可为一个 Runbook 指定多个标记并用逗号分隔各个标记。
Logging
默认情况下,详细记录和进度记录不会写入作业历史记录。 可以更改特定 Runbook 的设置以记录这些记录。 有关这些记录的详细信息,请参阅 Runbook 输出和消息。
指定的 Runbook 辅助角色
默认情况下,将 Runbook 作业分配给要执行的随机 Runbook 辅助角色。 可以更改特定 Runbook 的设置,以在特定 Runbook 辅助角色上执行 Runbook。
在管理门户中更改 Runbook 设置
可以从 Runbook 的“配置”页更改管理门户中 Runbook 的设置。
在管理门户中,选择“自动化” 。
选择“Runbook”选项卡。
选择 Runbook 的名称。
选择“配置”选项卡。
使用 PowerShell 更改 Runbook 设置
可以使用 Set-SmaRunbookConfiguration cmdlet 更改 Runbook 的所有设置,但标记除外。 只能使用管理门户更改和添加现有 Runbook 的标记。 使用 Import-SmaRunbook 导入 Runbook 时,只能使用 PowerShell 设置 Runbook 的标记。
以下示例命令演示了如何设置 Runbook 的属性。 此示例添加说明并指定应记录详细记录:
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Sample-TestRunbook"
Set-SmaRunbookConfiguration -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Description "Sample runbook" -LogVerbose $true
加密 Runbook 辅助角色和 SQL Server 连接
使用 SSL 保护 Runbook 工作 进程与 SQL Server 之间的连接。