使用 Service Management Automation 將 Microsoft Azure Pack 作業自動化

重要

此版本的 Service Management Automation (SMA) 已終止支援。 建議您 升級至 SMA 2022

您可以使用 Service Management Automation (SMA) Runbook,將適用於 Windows Server 環境的 Microsoft Azure Pack 中的例行作業自動化。 SMA Runbook 有兩種不同的類型:

類型 Description
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 工作流程的額外複雜性,例如還原串行化的物件。
  • Runbook 所需的啟動時間比 PowerShell Runbook 更久,因為它在執行之前需要編譯。
  • PowerShell Runbook 只能包含為子 Runbook,方法是使用建立新作業的 Start-SMARunbook Cmdlet。

PowerShell Runbook

PowerShell Runbook 是以 Windows PowerShell 為基礎。 您可以使用管理入口網站中的編輯器,直接編輯 Runbook 的程式代碼。 您也可以使用任何離線文字編輯器,並將 Runbook 匯 入 SMA。

優點

  • 使用 PowerShell 程式代碼實作所有複雜的邏輯,而不需要 PowerShell 工作流程的額外複雜度。
  • Runbook 的啟動速度會比 PowerShell 工作流程 Runbook 更快,因為它在執行之前不需要編譯。

限制

  • 必須熟悉 PowerShell 指令碼。
  • 您無法使用 平行處理 來平行執行多個動作。
  • 發生錯誤時,您無法使用 檢查點 繼續 Runbook。
  • PowerShell 工作流程 Runbook 只能包含為子 Runbook,方法是使用建立新作業的 Start-SMARunbook 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 Service 的服務帳戶內容中執行。 如果此帳戶沒有必要的許可權,您可以使用 Runbook 中的認證或連線全域資源,使用具有必要許可權的認證來執行必要的命令。 這些認證可使用透過參數接受認證的 Cmdlet,或使用替代認證以使用 InlineScript 來執行程式碼區塊。

下一步