撰寫服務管理自動化 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
在管理入口網站中,選取 [新增]、[應用程式服務]、[自動化]、[Runbook]、[快速建立]。
輸入必要資訊,然後選取 [ 建立]。 Runbook 名稱必須以字母開頭,而且可以有字母、數字、底線和連字號。
如果您想要立即編輯 Runbook,請選取 [編輯 Runbook]。 否則,請選取 [ 確定]。
新的 Runbook 會出現在 [Runbook] 索引標籤中。
從檔案匯入 Runbook
在管理入口網站中,選取 [自動化] ,然後選取 [自動化帳戶]。
選取匯入。
選取 [ 瀏覽檔案 ],然後找出要匯入的腳本檔案。
如果您想要立即編輯 Runbook,請選取 [編輯 Runbook]。 否則,請選取 [ 確定]。
新的 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、全域資產和活動程式代碼的功能。
在管理入口網站中,選取 [自動化] 。
選取 [Runbook] 索引標籤。
選取您要編輯的 Runbook 名稱。
選取 [作者] 索引標籤。
選取畫面頂端的 [ 草稿 ] 或畫面底部的 [ 編輯] 按鈕。
執行必要的編輯。
當您的編輯完成時,請選取 [ 儲存 ]。
如果您想要發佈 Runbook 的最新草稿版本,請選取 [發佈 ]。
選取必要的索引標籤,以取得插入 Runbook、全域資產和活動之程式代碼的步驟:
請遵循下列步驟,將程式代碼插入 Runbook:
在管理入口網站編輯器中開啟 Runbook。
在畫面底部,選取 [ 插入 ],然後選取 [ Runbook]。
從中央數據行選取要插入的 Runbook,然後選取向右箭號。
如果 Runbook 有參數,它們會列出供您參考。
選取核取按鈕。
執行所選 Runbook 的程式代碼將會插入目前的 Runbook 中。
如果 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。
開啟 Windows PowerShell ISE。
如果 SMA ISE 附加元件未顯示在 ISE 右側,請開啟 [附加元件] 選單,然後啟用 SMA ISE 附加元件。
在 [ 組態 ] 索引標籤上登入 SMA。
選取 [Runbook] 索引 標籤 。您應該會看到 SMA Runbook 清單。
選取您要編輯的 Runbook,然後選取 [ 下載]。 這會從 SMA 下載 Runbook 的本地副本。
選取開啟。 這會使用 Runbook 建立新的索引標籤。
對 Runbook 進行必要的變更。
選取 [上傳草稿 ] 以將 Runbook 傳送至 SMA。 這會覆寫現有的 Runbook 草稿版本。
如果您想要發佈 Runbook 的最新草稿版本,請選取 [發佈 草稿]。
發佈 Runbook
建立 Runbook 之後,您必須發布它,讓 Runbook 背景工作角色可以執行它。 Service Management Automation 中的每個 Runbook 都有草稿和已發佈的版本。 只有已發佈版本可執行,且只有草稿版本可供編輯。 已發佈版本不受草稿版本的任何變更影響。 當您準備好讓草稿版本可供使用時,您可以發佈它,這會以草稿版本覆寫已發佈版本。
使用管理入口網站發佈 Runbook
選取 [自動化] 工作區。
在畫面頂端,選取 [Runbook] 。
找出要編輯的 Runbook,然後按一下其名稱。
在畫面頂端,選取 [ 作者]。
選取 [ 草稿]。
在畫面底部,選取 [ 發佈]。
選取 [ 是 ] 驗證訊息。
使用 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。
開啟 Windows PowerShell ISE。
如果 SMA ISE 附加元件未顯示在 ISE 右側,請開啟 [附加元件] 選單,然後啟用 SMA ISE 附加元件。
在 [ 組態 ] 索引標籤上登入 SMA。
選取 [Runbook] 索引 標籤 。您應該會看到 SMA Runbook 清單。
選取 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 的實用案例。 |