Service Management Automation Runbook の作成

Service Management Automation と Microsoft Azure Automation の Runbook は、Windows PowerShell ワークフローまたは PowerShell スクリプトです。 クラウド サーバーの管理や展開など、Windows PowerShell スクリプトが実行できる機能について、管理プロセスを自動化できます。

2 つのシステム間の Runbook に違いはなく、同じ機能を使用して同じ Runbook を実行できます。 この記事で Automation という用語を使用する場合は、Service Management Automation と Microsoft Azure Automation の両方を指します。

Windows PowerShell ワークフローと連携するために、Automation では次のようなサービスを提供しています。

  • Runbook の一元的な記憶域と管理

  • Runbook をスケジュールおよび実行するための拡張可能なアーキテクチャ

  • 一元管理され、すべての Runbook から使用できるグローバル リソース。

  • ユーザー インターフェイスの作成と runbook のテストします。

  • Runbook を管理および起動するためのコマンドレットのセット。

Runbook を作成またはインポートする

Runbook を Service Management Automation に追加するには、管理ポータルで Runbook を作成するか、ファイルからインポートします。

管理ポータルで Runbook を作成する

  1. 管理ポータルで、 NewApp ServicesAutomationRunbookQuick Create を選択します。

  2. 必要な情報を入力し、 Create を選択します。 Runbook 名は、先頭を英字にする必要があり、英字、数字、アンダースコア、およびダッシュを使用できます。

  3. ここで Runbook を編集する場合は、[Runbook の編集] 選択。 それ以外の場合は、 OK を選択します。

  4. 新しい Runbook が [Runbook] タブに表示されます。

ファイルから Runbook をインポートする

  1. 管理ポータルで、 [Automation] を選択し、[オートメーション アカウント] を選択します。

  2. インポート を選択します。

  3. [ファイルの参照]を選択しインポートするスクリプト ファイルを見つけます。

  4. ここで Runbook を編集する場合は、 Edit Runbook を選択します。 それ以外の場合は、 OK を選択します。

  5. オートメーション アカウントの [Runbook] タブに新しい Runbook が表示されます。

Windows PowerShell を使用してスクリプト ファイルから Runbook をインポートする

Import-SmaRunbook コマンドレットを使用して、ワークフローを含むスクリプト ファイルから新しい 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 には、下書きと発行済みの 2 つのバージョンがあります。 ワークフローの下書きバージョンを編集し、実行できるように発行します。 発行済みバージョンは編集できません。

管理ポータルで Runbook を編集する

管理ポータルには、Runbook の閲覧と編集を行うことができるエディターが含まれています。 エディターには、基本的なテキスト編集機能に加えて、Runbook、グローバル資産、アクティビティのコードを自動的に挿入する機能が用意されています。

  1. 管理ポータルで、 [Automation]を選択します。

  2. [Runbook] タブを選択します。

  3. 編集する Runbook の名前を選択します。

  4. [作成者] タブを選択します。

  5. 画面の上部にある Draft または画面下部の Edit ボタンを選択します。

  6. 必要な編集を実行します。

  7. 編集が完了したら 保存 を選択します。

  8. 最新のドラフト バージョンの Runbook を発行する場合はPublish を選択します。

Runbook、グローバル 資産、およびアクティビティのコードを挿入する手順に必要なタブを選択します。

Runbook にコードを挿入するには、次の手順に従います。

  1. 管理ポータル エディターで、Runbook を開きます。

  2. 画面の下部にある Insert を選択し、 Runbook を選択します。

  3. 中央の列から挿入する Runbook を選択し、右矢印を選択します。

  4. Runbook にパラメーターがある場合は一覧表示されます。

  5. チェック ボタンを選択します。

  6. 選択した Runbook を実行するコードが、現在の Runbook に挿入されます。

  7. Runbook にパラメーターが必要な場合は、中かっこで囲まれたデータ型の代わりに適切な値 <>指定します。

PowerShell を使用して Automation Runbook を編集する

Windows PowerShell を使用して Runbook を編集するには、任意のエディターを使用してワークフローを編集し、.ps1 ファイルに保存します。 Get-smarunbookdefinition コマンドレットを使用して Runbook の内容を取得し、それから Edit-smarunbook コマンドレットを使用して、既存のドラフト ワークフローを変更したものに置き換えます。

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 を使用して Automation Runbook を編集する

Windows PowerShell Integrated Scripting Environment (ISE) は、コマンドを実行し、スクリプトを記述、テスト、デバッグできるアプリケーションです。 SMA PowerShell ISE アドオンを使用すると、このツールを使用して Automation Runbook の作成とテストを行うことができます。

  1. Windows PowerShell ISE を開きます。

  2. SMA ISE アドオン ISE の右側に表示されない場合は、[追加] メニューを開き、SMA ISE アドオンを有効にします

  3. Configuration タブで SMA にサインインします。

  4. Runbook タブを選択します。SMA Runbook の一覧が表示されます。

  5. 編集する Runbook を選択し、 ダウンロードを選択します。 これにより、SMA から Runbook のローカル コピーがダウンロードされます。

  6. [Open (開く)] を選択します。 これにより、Runbook で新しいタブが作成されます。

  7. Runbook に必要な変更を加えます。

  8. [ドラフトのアップロード] 選択して Runbook を SMA に送信します。 これにより、Runbook の既存のドラフト バージョンが上書きされます。

  9. Runbook の最新 下書きバージョンを発行する場合は [下書きの発行] を選択します。

Runbook を発行する

Runbook を作成したら、Runbook worker が実行できるように Runbook を発行する必要があります。 Service Management Automation の各 Runbook には、下書きと発行済みバージョンがあります。 実行できるのは発行バージョンのみで、編集できるのはドラフト バージョンのみです。 ドラフト バージョンを変更しても発行バージョンに影響はありません。 下書きバージョンを使用できるようにする準備ができたら、それを発行すると、発行済みのバージョンが下書きバージョンで上書きされます。

管理ポータルを使用して Runbook を発行する

  1. [Automation] ワークスペースを選択します。

  2. 画面の上部で、 [Runbook]を選択します。

  3. 編集する Runbook を検索し、その名前をクリックします。

  4. 画面の上部にある Author を選択します。

  5. [ Draft を選択します。

  6. 画面の下部にある Publish を選択します。

  7. 確認メッセージ Yes を選択します。

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 Integrated Scripting Environment (ISE) は、コマンドを実行し、スクリプトを記述、テスト、デバッグできるアプリケーションです。 SMA PowerShell ISE アドオンを使用すると、このツールを使用して Automation Runbook の作成とテストを行うことができます。

  1. Windows PowerShell ISE を開きます。

  2. SMA ISE アドオン ISE の右側に表示されない場合は、[追加] メニューを開き、SMA ISE アドオンを有効にします

  3. Configuration タブで SMA にサインインします。

  4. Runbook タブを選択します。SMA Runbook の一覧が表示されます。

  5. Runbook を選択し、 Publish Draft を選択して、Runbook の最新のドラフト バージョンを発行します。

Runbook をテストする

発行済みのバージョンの Runbook を変更せずに、Service Management Automation で Runbook のドラフト バージョンをテストできます。 これにより、発行バージョンを置き換える前に、Runbook が正常に機能していることを確認することができます。

Runbook のテスト時に、ドラフトの Runbook が実行され、行われたすべての操作が完了します。 ジョブ履歴は作成されませんが、 Output ストリームと Warning ストリームと Error ストリームがテスト出力ウィンドウに表示されます。 Verbose Stream へのメッセージは、$VerbosePreference変数Continue に設定されている場合にのみ、出力ウィンドウに表示されます。

Runbook をテストしても、ワークフローは正常に実行され、環境内のリソースに対してアクションが実行されます。 このため、Runbook のテストは、非運用環境のリソースに対してのみ行う必要があります。

Service Management Automation で Runbook をテストする

Runbook をテストするには、 管理ポータルで Runbook の下書きバージョンを開きます。 画面の下部にある Test ボタンを選択してテストを開始します。

Runbook のテスト中は、出力ウィンドウの下にあるボタンを使用して停止または中断できます。 Runbook は、中断される場合は中断前に現在のアクティビティを完了します。 Runbook を中断した後で、停止または再開できます。

PowerShell ISE を使用して Runbook をテストする

PowerShell ISE アドオンには、Get-SMACredential や Set-SMAVariable などの標準アクティビティをエミュレートするコマンドレットが用意されているため、他のスクリプトと同様に、ローカル コンピューターで Runbook をテストできます。

グローバル資産とその値は、ローカル テストに使用するためにオートメーション グループからダウンロードされます。 これらの値は、 Assets タブで確認または変更できます。暗号化された値はオレンジ色で表示され、それらの値はダウンロードされません。 これらの資産をローカル テストで使用する場合は、その値をローカルで設定する必要があります。

SMA で Runbook をテストするには、SMA で Test Draft を選択します。 新しいウィンドウが開きます。 [新しいジョブの開始] を選択してテストを開始します。 出力がウィンドウに表示されます。

Automation Runbook のサンプル

次の Runbook には、手法とベスト プラクティスを示すサンプル Runbook として Service Management Automation が付属しています。 これらは、Microsoft Azure Pack for Windows Server の Automation 拡張機能で使用できます。

Runbook 名 説明
Sample-Deleting-VMCloud-Subscription ユーザーが VM クラウド サブスクリプションを削除するときに 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 System Center Operations Manager に接続する Service Management Automation の機能を示します。
Sample-Managing-Orchestrator System Center Orchestrator に接続し、Orchestrator Runbook を開始して既存のインフラストラクチャを使用する方法について説明します。
Sample-Managing-Plans 新しいプランを作成し、新しいプランのクォータを定義した SQL Server サービスを追加する方法を示します。
Sample-Managing-ServiceBusClouds サービス バス クラウド サーバーに接続し、作成された名前空間に関する情報を表示する方法を示します。
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 サイト クラウド コントローラーに接続し、Web サイト クラウドに展開されているサーバーの情報を表示する方法を示します。
Sample-Modify-VMCloud-Subscription テナントまたは管理者が VM クラウド サブスクリプションを一時停止またはアクティブ化するときに Runbook をトリガーするために役立つシナリオを示します。
Sample-Using-Activities アクティビティを使用する Service Management Automation の機能を示します
Sample-Using-Checkpoints Service Management Automation でチェックポイントを使用する機能を示します。
Sample-Using-Connections 接続を使用してリモート システムに接続する Service Management Automation の機能を示します。
Sample-Using-Credentials 資格情報を使用する Service Management Automation の機能を示し、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 変数を使用する Service Management Automation の機能を示します。
Sample-Using-VMCloud-Automation Service Provider Foundation イベントの開始時に Runbook をトリガーするために役立つシナリオを示します。

次のステップ