使用 Service Management Automation 自动化 Microsoft Azure Pack 操作

可以使用 Service Management Automation (SMA) Runbook 在适用于 Windows Server 环境的 Microsoft Azure Pack 中自动执行例程操作。 SMA Runbook 有两种不同的类型:

类型 描述
PowerShell 工作流 基于 Windows PowerShell 工作流的文本 Runbook。
PowerShell 基于 Windows PowerShell 脚本的文本运行手册。

PowerShell 工作流运行手册

PowerShell 工作流运行手册基于 Windows PowerShell 工作流。 可以使用管理门户中的编辑器直接编辑运行手册的代码。 还可以使用任何脱机文本编辑器并将 Runbook 导入 SMA。

优点

  • 使用 PowerShell 工作流代码实现所有复杂的逻辑。
  • 在出现错误时,使用检查点来恢复 Runbook。
  • 使用并行处理并行执行多个操作。
  • 将其他 PowerShell 工作流 Runbook 作为子 Runbook 包含在内,以创建高级工作流。

限制

  • 你必须熟悉 PowerShell 工作流。
  • Runbook 必须处理 PowerShell 工作流的其他复杂性,例如反序列化的对象。
  • 与 PowerShell Runbook 相比,Runbook 需要更长时间来启动,因为它在运行前需要进行编译。
  • PowerShell 运行簿只能通过使用 Start-SMARunbook cmdlet 来作为子运行簿包含,该 cmdlet 会创建一个新作业。

PowerShell 运行手册

PowerShell 作业簿基于 Windows PowerShell。 可以使用管理门户中的编辑器直接编辑运行手册的代码。 还可以使用任何脱机文本编辑器并将 Runbook 导入 SMA。

优点

  • 使用 PowerShell 代码实现所有复杂逻辑,而无需使用 PowerShell 工作流的其他复杂性。
  • 与 PowerShell 工作流 Runbook 相比,Runbook 的启动速度更快,因为它在运行前不需要经过编译。

限制

  • 你必须熟悉 PowerShell 脚本。
  • 不能使用 并行处理 并行执行多个操作。
  • 出现错误时,无法使用检查点来恢复 Runbook。
  • 只能使用 Start-SMARunbook cmdlet(将创建新作业),包括 PowerShell 工作流 Runbook 作为子 Runbook。

SMA 如何执行 Runbook

由 SMA Web 服务使用服务管理门户或 Start-SmaRunbook Windows PowerShell cmdlet 来执行启动 Runbook 的请求。 Web 服务将此请求写入自动化数据库,该请求由其中一台自动化工作服务器检索。

如果已填充 Runbook 的 RunbookWorker 属性,则该工作进程服务器将处理作业。 如果工作程序服务器不可用,则作业将失败并显示错误。 如果未填充 Runbook 的 RunbookWorker 属性,则 SMA 会随机选择一台可用的工作进程服务器来处理该请求。

辅助角色服务器创建一个作业,该作业在辅助角色服务器上运行,该作业服务请求并远程访问它将使用的任何计算机或其他资源。 这需要 runbook 中的 cmdlet 能够远程访问这些资源。 或者,运行手册可以包含 InlineScript 命令,以便使用 PowerShell 远程处理在目标计算机上本地运行命令。 下图说明了此概念。

Runbook 执行关系图。

如果作业挂起或中断,则可能会在不同的工作进程服务器上恢复。 因此,您应该谨慎使用所有 Worker 服务器无法访问的本地资源,例如本地计算机上的文件。 应尽可能使用全局资产(如变量)在检查点之间共享信息。

权限

为了让运行手册执行必要的操作,它必须具备对其所用资源的访问权限。 SMA 中的 Runbook 始终在 Automation Runbook Service 的服务帐户上下文中运行。 如果此帐户没有所需的权限,则可以在 Runbook 中使用 凭据连接 全局资源,使用具有所需权限的凭据运行所需的命令。 这些凭据也可以与通过参数接受凭据的 cmdlet 配合使用,或是与 InlineScript 配合使用以便运行使用备用凭据的代码块。

后续步骤