使用 Service Management Automation 自动执行 azure Pack 操作Microsoft

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

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

PowerShell 工作流 Runbook

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

优点

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

限制

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

PowerShell Runbook

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

优点

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

限制

  • 你必须熟悉 PowerShell 脚本。
  • 不能使用 并行处理 并行执行多个操作。
  • 发生错误时, 无法使用检查点 恢复 Runbook。
  • PowerShell 工作流 Runbook 只能通过使用 Start-SMARunbook cmdlet 作为子 Runbook 包含,该 cmdlet 会创建新作业。

SMA 如何执行 Runbook

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

如果填充 Runbook 的 RunbookWorker 属性,则该辅助角色服务器将为作业提供服务。 如果辅助角色服务器不可用,则作业失败并出现错误。 如果未填充 Runbook 的 RunbookWorker 属性,则 SMA 会随机选择可用的辅助角色服务器来为请求提供服务。

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

Runbook 执行关系图。

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

权限

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

后续步骤