作为 Service Management Automation (SMA) 管理员,您需要配置和运行运行手册(Runbook)。 包括设置 Runbook 工作器以及计划和跟踪 Runbook 的活动。 除了你创作的 Runbook 外,SMA 还包含两个系统 Runbook:
- DiscoverAllLocalModules:在安装 Runbook 工作器后立即运行。 此 Runbook 发现安装 Runbook 工作器的 Windows Server 系统上的所有本机模块。 它提取这些模块的活动和活动元数据,以便在 Microsoft Azure Pack 中创作 Runbook 时可以使用这些活动。
- SetAutomationModuleActivityMetadata:在将模块导入 SMA 后立即运行。 此运行手册从新导入的模块中提取活动及其元数据,以便在 Microsoft Azure Pack 中编写运行手册时使用这些活动。
配置 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 在指定时间启动,你可以将其链接到一个或多个计划。 可以将计划配置为运行一次或设置为重复执行。 一个运行手册可以链接到多个计划,而一个计划也可以链接到多个运行手册。
创建计划
可以使用管理门户或 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 包含参数,系统会提示输入其值。
使用 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 工作流运行手册作业的生命周期。
下图示意了 PowerShell 脚本工作簿作业的生命周期。
作业状态
下表描述了作业的各种可能状态。
状态 | 说明 |
---|---|
已完成 | 作业已成功完成。 |
已失败 | 作业结束时出现异常。 |
已排队 | 作业正在等待 Automation 工作进程上的资源成为可用状态,以便作业可启动。 |
正在启动 | 作业已分配给工作人员,系统正在启动该作业。 |
正在恢复 | 系统正在恢复已挂起的作业。 |
跑步 | 作业正在运行。 |
已停止 | 作业在完成之前已被用户停止。 |
正在停止 | 系统正在停止作业。 |
已挂起 | 作业已被用户、系统或运行手册中的命令暂停。 已挂起的作业可以重新启动。 它会从最后一个检查点恢复,如果没有检查点,则从运行手册的开头开始恢复。 仅在出现可能恢复的异常时,系统才会挂起 Runbook。 默认情况下, ErrorActionPreference 设置为 “继续”,这意味着作业在发生异常时会继续运行。 如果此变量设置为 “停止”,则会在发生异常时暂停作业。 |
暂停中 | 系统尝试在用户请求时暂停作业。 Runbook 只有在达到其下一个检查点后才能挂起。 如果它已经通过了最后一个检查点,那么在被暂停之前就已经完成了。 |
在管理门户中查看作业状态
自动化仪表板显示 SMA 环境中所有运行手册的摘要。
- 摘要图显示在给定的天数或小时数内所有输入每个状态的 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 后,无法更改其名称。 “描述” 为可选并最多可以含有 512 个字符。
标记
可以使用标记分配不同的单词和短语,以帮助标识 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 服务器连接
使用 SSL 保护 Runbook 工作 进程与 SQL Server 之间的连接。