使用 Service Management Automation 自动化 Microsoft Azure Pack 操作
可以使用 Service Management Automation (SMA) Runbook 在适用于 Windows Server 环境的 Microsoft Azure Pack 中自动执行例程操作。 有两种不同的 SMA Runbook 类型:
类型 | 描述 |
---|---|
PowerShell 工作流 | 基于 Windows PowerShell 工作流的文本化运行手册。 |
PowerShell | 基于 Windows PowerShell 脚本的文本运行手册。 |
PowerShell 工作流运行手册
PowerShell 工作流运行手册基于 Windows PowerShell 工作流。 可以使用管理门户中的编辑器直接编辑 Runbook 的代码。 还可以使用任何脱机文本编辑器并将 Runbook 导入 SMA。
优点
- 使用 PowerShell 工作流代码实现所有复杂的逻辑。
- 在发生错误时,使用检查点来恢复运行手册。
- 使用并行处理并行执行多个操作。
- 将其他 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 脚本。
- 不能使用 并行处理 并行执行多个操作。
- 发生错误时,无法使用检查点来恢复运行手册。
- PowerShell 工作流 Runbook 只能通过使用 Start-SMARunbook cmdlet 作为子 Runbook 包含,该 cmdlet 会创建新作业。
SMA 如何执行运行手册
启动运行手册的请求是通过 SMA Web 服务使用服务管理门户或 Start-SmaRunbook Windows PowerShell cmdlet 来执行的。 Web 服务将此请求写入自动化数据库,该请求由其中一台自动化工作服务器检索。
如果填充了 Runbook 的 RunbookWorker 属性,则该工作服务器将处理该作业。 如果工作服务器不可用,则作业失败并出现错误。 如果未填充 Runbook 的 RunbookWorker 属性,则 SMA 会随机选择一台可用的工作服务器来为请求提供服务。
辅助角色服务器创建一个作业,该作业在辅助角色服务器上运行,该作业服务请求并远程访问它将使用的任何计算机或其他资源。 这需要 runbook 中的 cmdlet 能够远程访问这些资源。 或者,运行手册可以包含 InlineScript 命令,以便使用 PowerShell 远程处理在目标计算机上本地运行命令。 下图说明了此概念。
如果作业挂起或中断,则可能会在不同的工作服务器上恢复。 因此,您应该谨慎使用所有 Worker 服务器无法访问的本地资源,例如本地计算机上的文件。 应尽可能使用全局资产(如变量)在检查点之间共享信息。
权限
为了使 runbook 执行其所需操作,它必须有权访问所使用的资源。 在 SMA 中,Runbook 始终在自动化运行手册服务的服务帐户环境中运行。 如果此帐户没有所需的权限,则可以在 Runbook 中使用 凭据 或 连接 全局资源,使用具有所需权限的凭据运行所需的命令。 这些凭据也可以与通过参数接受凭据的 cmdlet 配合使用,或是与 InlineScript 配合使用以便运行使用备用凭据的代码块。