共用方式為


撰寫服務管理自動化 Runbook

Service Management Automation 和 Microsoft Azure 自動化 中的 Runbook 是 Windows PowerShell 工作流程或 PowerShell 腳本。 這可提供自動化的管理程序,以管理及部署雲端伺服器或 Windows PowerShell 指令碼可執行的任何其他功能。

這兩個系統之間的 Runbook 並沒有任何差異,而且相同的 Runbook 可以使用相同的功能來執行。 當本文中使用自動化一詞時,它指的是 Service Management Automation 和 Microsoft Azure 自動化。

自動化另外提供的下列這些功能,也可與 Windows PowerShell 工作流程一起搭配使用:

  • 集中儲存及管理 Runbook。

  • 可調適的排程及執行 Runbook 架構。

  • 集中進行管理並適用於所有 Runbook 的全域資源。

  • 用於撰寫及測試 Runbook 的使用者介面。

  • 一組可用於管理及啟動 Runbook 的指令程式。

建立或匯入 Runbook

您可以在管理入口網站中建立 Runbook,或從檔案匯入 Runbook,將 Runbook 新增至 Service Management Automation。

在管理入口網站中建立 Runbook

  1. 在管理入口網站中,選取 [新增]、[應用程式服務]、[自動化]、[Runbook]、[快速建立]。

  2. 輸入必要資訊,然後選取 [ 建立]。 Runbook 名稱必須以字母開頭,而且可以有字母、數字、底線和連字號。

  3. 如果您想要立即編輯 Runbook,請選取 [編輯 Runbook]。 否則,請選取 [ 確定]。

  4. 新的 Runbook 會出現在 [Runbook] 索引標籤中。

從檔案匯入 Runbook

  1. 在管理入口網站中,選取 [自動化] ,然後選取 [自動化帳戶]。

  2. 選取匯入

  3. 選取 [ 瀏覽檔案 ],然後找出要匯入的腳本檔案。

  4. 如果您想要立即編輯 Runbook,請選取 [編輯 Runbook]。 否則,請選取 [ 確定]。

  5. 新的 Runbook 會出現在 [自動化帳戶] 的 [Runbook] 索引標籤。

使用 Windows PowerShell 從腳本檔案匯入 Runbook

您可以使用 Import-SmaRunbook Cmdlet,從包含工作流程的指令碼檔案中建立新的 Runbook。

下列命令範例示範如何將指令碼檔案匯入現有的 Runbook,然後發佈它。

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scriptPath = "c:\runbooks\Test-Runbook.ps1"

Import-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Path $scriptPath
Publish-SMARunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName

編輯 Runbook

Service Management Automation 中的每個 Runbook 都有兩個版本:Draft 和 Published。 您可以編輯工作流程的草稿版本,然後加以發佈,以便執行它。 無法編輯已發佈的版本。

使用管理入口網站編輯 Runbook

管理入口網站包含可用來檢視和編輯 Runbook 的編輯器。 除了提供基本文字編輯功能之外,編輯器還提供自動插入 Runbook、全域資產和活動程式代碼的功能。

  1. 在管理入口網站中,選取 [自動化]

  2. 選取 [Runbook] 索引標籤。

  3. 選取您要編輯的 Runbook 名稱。

  4. 選取 [作者] 索引標籤。

  5. 選取畫面頂端的 [ 草稿 ] 或畫面底部的 [ 編輯] 按鈕。

  6. 執行必要的編輯。

  7. 當您的編輯完成時,請選取 [ 儲存 ]。

  8. 如果您想要發佈 Runbook 的最新草稿版本,請選取 [發佈 ]。

選取必要的索引標籤,以取得插入 Runbook、全域資產和活動之程式代碼的步驟:

請遵循下列步驟,將程式代碼插入 Runbook:

  1. 在管理入口網站編輯器中開啟 Runbook。

  2. 在畫面底部,選取 [ 插入 ],然後選取 [ Runbook]。

  3. 從中央數據行選取要插入的 Runbook,然後選取向右箭號。

  4. 如果 Runbook 有參數,它們會列出供您參考。

  5. 選取核取按鈕。

  6. 執行所選 Runbook 的程式代碼將會插入目前的 Runbook 中。

  7. 如果 Runbook 需要參數,請提供適當的值來取代以大括弧括住的 <>數據類型。

使用 PowerShell 編輯自動化 Runbook

若要使用 Windows PowerShell 編輯 Runbook,請使用選擇的編輯器編輯工作流程,並將它儲存到 .ps1 檔案。 您可以使用 Get-SMARunbookDefinition Cmdlet 來擷取 Runbook 內容,再使用 Edit-SMARunbook Cmdlet,以修改過的草稿工作流程取代現有的草稿工作流程。

使用 Windows PowerShell 擷取 Runbook 的內容

下列命令範例會顯示如何擷取 Runbook 的指令碼,並將它儲存到指令碼檔案。 在此範例中會擷取草稿版本。 雖然無法變更此版本,但也可以擷取 Runbook 的已發佈版本。

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scriptPath = "c:\runbooks\Test-Runbook.ps1"

$runbookDefinition = Get-SMARunbookDefinition -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Type Draft
$runbookContent = $runbookDefinition.Content

Out-File -InputObject $runbookContent -FilePath $scriptPath

若要使用 Windows PowerShell 變更 Runbook 的內容

下列命令範例顯示如何以包含工作流程的指令碼檔案內容,取代現有的 Runbook 內容。

$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scriptPath = "c:\runbooks\Test-Runbook.ps1"

Edit-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Path $scriptPath -Overwrite
Publish-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Path $scriptPath

使用 PowerShell ISE 編輯自動化 Runbook

Windows PowerShell 整合式腳本環境 (ISE) 是一個應用程式,可讓您執行命令及撰寫、測試和偵錯腳本。 SMA PowerShell ISE 附加元件可讓您使用此工具來撰寫及測試自動化 Runbook。

  1. 開啟 Windows PowerShell ISE。

  2. 如果 SMA ISE 附加元件未顯示在 ISE 右側,請開啟 [附加元件] 選單,然後啟用 SMA ISE 附加元件

  3. 在 [ 組態 ] 索引標籤上登入 SMA。

  4. 選取 [Runbook] 索引 標籤 。您應該會看到 SMA Runbook 清單。

  5. 選取您要編輯的 Runbook,然後選取 [ 下載]。 這會從 SMA 下載 Runbook 的本地副本。

  6. 選取開啟。 這會使用 Runbook 建立新的索引標籤。

  7. 對 Runbook 進行必要的變更。

  8. 選取 [上傳草稿 ] 以將 Runbook 傳送至 SMA。 這會覆寫現有的 Runbook 草稿版本。

  9. 如果您想要發佈 Runbook 的最新草稿版本,請選取 [發佈 草稿]。

發佈 Runbook

建立 Runbook 之後,您必須發布它,讓 Runbook 背景工作角色可以執行它。 Service Management Automation 中的每個 Runbook 都有草稿和已發佈的版本。 只有已發佈版本可執行,且只有草稿版本可供編輯。 已發佈版本不受草稿版本的任何變更影響。 當您準備好讓草稿版本可供使用時,您可以發佈它,這會以草稿版本覆寫已發佈版本。

使用管理入口網站發佈 Runbook

  1. 選取 [自動化] 工作區。

  2. 在畫面頂端,選取 [Runbook]

  3. 找出要編輯的 Runbook,然後按一下其名稱。

  4. 在畫面頂端,選取 [ 作者]。

  5. 選取 [ 草稿]。

  6. 在畫面底部,選取 [ 發佈]。

  7. 選取 [ ] 驗證訊息。

使用 PowerShell 發佈 Runbook

您可以搭配使用 Publish-SmaRunbook 與 Windows PowerShell 來發佈 Runbook。 下列命令範例示範如何發佈 Runbook。

$webServer = 'https://MyServer'
$port = 9090
$runbookPath = 'c:\runbooks\Sample-TestRunbook.ps1'
$runbookName = 'Test-Runbook'

Publish-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName

使用 PowerShell ISE 發佈 Runbook

Windows PowerShell 整合式腳本環境 (ISE) 是一個應用程式,可讓您執行命令及撰寫、測試和偵錯腳本。 SMA PowerShell ISE 附加元件可讓您使用此工具來撰寫及測試自動化 Runbook。

  1. 開啟 Windows PowerShell ISE。

  2. 如果 SMA ISE 附加元件未顯示在 ISE 右側,請開啟 [附加元件] 選單,然後啟用 SMA ISE 附加元件

  3. 在 [ 組態 ] 索引標籤上登入 SMA。

  4. 選取 [Runbook] 索引 標籤 。您應該會看到 SMA Runbook 清單。

  5. 選取 Runbook,然後選取 [發佈草稿 ] 以發佈 Runbook 的最新草稿版本。

測試 Runbook

您可以在 Service Management Automation 中測試 Runbook 的草稿版本,同時讓已發佈版本的 Runbook 保持不變。 這可讓您先確認 Runbook 正確運作,再取代已發佈版本。

當您測試 Runbook 時,會執行草稿 Runbook 並完成其執行的任何動作。 不會建立任何作業歷程記錄,但 [測試輸出] 窗格中會顯示 [輸出 ] 和 [警告] 和 [錯誤 ] 數據流。 只有當$VerbosePreference變數設定為 [繼續] 時,才會在 [輸出] 窗格中顯示 [詳細信息數據流] 的訊息。

當您測試 Runbook 時,它仍會正常執行工作流程,並針對環境中的資源執行任何動作。 基於這個理由,您應該只針對非生產資源測試 Runbook。

在 Service Management Automation 中測試 Runbook

若要測試 Runbook, 在管理入口網站中開啟 Runbook 的草稿版本。 選取畫面底部的 [ 測試 ] 按鈕以啟動測試。

您可以使用 [輸出窗格] 下方的按鈕進行測試時,停止或暫停 Runbook。 暫停 Runbook 時,它會先完成目前的活動後才暫停。 暫停 Runbook 後,您可以停止或重新啟動它。

使用 PowerShell ISE 測試 Runbook

PowerShell ISE 附加元件提供 Cmdlet 來模擬標準活動,例如 Get-SMACredential 和 Set-SMAVariable,因此您可以如同任何其他腳本一樣,在本機計算機上測試 Runbook。

全域資產及其值會從自動化群組下載,以用於本機測試。 您可以在 [資產] 索引標籤上檢查或變更這些值。加密的值會顯示在橙色中,而且不會下載其值。 如果您想要在本機測試中使用這些資產,則必須在本機設定其值。

若要在 SMA 中測試 Runbook,請選取 [SMA 中的測試草稿]。 將會開啟新的視窗。 選取 [ 啟動新作業 ] 以開始測試。 輸出會顯示在視窗中。

自動化 Runbook 範例

下列 Runbook 隨附於 Service Management Automation 作為範例 Runbook,以說明技術和最佳做法。 它們可用於適用於 Windows Server Microsoft Azure Pack 的自動化擴充功能。

Runbook 名稱 描述
Sample-Deleting-VMCloud-Subscription 示範當使用者刪除 VM Clouds 訂閱時,用於觸發 Runbook 的實用案例。
Sample-Managing-Azure 示範如何連線到Microsoft Azure 訂用帳戶,並使用 Microsoft Azure PowerShell 模組來執行基本作業。
Sample-Managing-ConfigurationManager 示範 Service Management Automation 連線到 Configuration Manager 的功能。
Sample-Managing-DataProtectionManager 示範如何連接至 Data Protection Manager (DPM) 伺服器,並且檢視 DPM 伺服器上所找到的磁碟的相關資訊。
Sample-Managing-MySQLServers 示範如何擷取安全性權杖,以用來擷取主機伺服器的清單。
Sample-Managing-OperationsManager 示範 Service Management Automation 連線到 System Center Operations Manager 的功能。
Sample-Managing-Orchestrator 示範如何連線到 System Center Orchestrator,並啟動 Orchestrator Runbook 以使用現有的基礎結構。
Sample-Managing-Plans 示範如何建立新計劃以及新增具有定義配額的 SQL Server 服務至新計劃中。
Sample-Managing-ServiceBusClouds 示範如何連接至 Service Bus Cloud 伺服器並且檢視所建立命名空間的相關資訊。
Sample-Managing-SQLServers 示範如何建立新伺服器群組以及新增 SQL 主控伺服器。
Sample-Managing-UserAccounts 示範如何在 Microsoft Azure Pack for Windows Server 中建立使用者,這會在 Microsoft Azure Pack 中建立,並出現在系統管理員使用者延伸模組的管理入口網站中。 不過,此使用者也應該整合至驗證提供者(例如 AuthSite),以存取租使用者的管理入口網站,但此範例中不包含此入口網站。
Sample-Managing-VirtualMachineManager 示範如何連接至 Virtual Machine Manager (VMM) 伺服器以及檢視 VMM 伺服器授權的相關資訊。
Sample-Managing-VMClouds 示範如何存取 Service Provider Foundation 伺服器的資料庫連線的相關資訊,關於由 Service Provider Foundation 管理的 VMM 伺服器物件的相關資訊。
Sample-Managing-WebSiteCloud 示範如何連接至 Web Site Clouds 控制器伺服器,以及檢視部署了 Web Site Clouds 的伺服器的相關資訊。
Sample-Modify-VMCloud-Subscription 示範當租用戶或系統管理員暫停或啟動 VM Clouds 訂閱時,用於觸發 Runbook 的實用案例。
Sample-Using-Activities 示範服務管理自動化使用活動的功能
Sample-Using-Checkpoints 示範在 Service Management Automation 中使用檢查點的功能。
Sample-Using-Connections 示範服務管理自動化使用聯機連線連線到遠端系統的功能。
Sample-Using-Credentials 示範服務管理自動化使用認證的功能,並輸出 Service Management Automation Runbook 執行身分的使用者。 然後,便會連線至伺服器 'ServerName' 並且輸出 'SampleCredential' 指定存取伺服器的使用者。
Sample-Using-Modules 示範在 Runbook 中匯入模組,並且在伺服器 'ServerName' 上輸出已匯入模組的數量。 然後,匯入 'ModulePath' 所指定的模組,並且輸出新模組計數以及對應新匯入模組的資訊。
Sample-Using-RunbookParameters 示範如何使用 Runbook 的輸入參數並且指定是否需要參數,提供預設參數值以及稍後在工作流程中使用參數值。
Sample-Using-Runbooks 示範如何從另一個 Runbook 中呼叫 Runbook。
Sample-Using-SuspendWorkflow 示範如何強制暫停 Runbook。 如果 Runbook 應該繼續之前需要手動步驟,例如從特定人員接收註銷核准,這可能很有用。 在完成手動步驟後,暫停的 Runbook 將會以手動方式恢復以繼續執行 Runbook。
Sample-Using-Variables 示範服務管理自動化使用變數的功能。
Sample-Using-VMCloud-Automation 示範在啟動 Service Provider Foundation 事件時觸發 Runbook 的實用案例。

下一步

  • 瞭解如何從另一個 Runbook 呼叫一個 Runbook。
  • 閱讀如何使用整合模組。