Service Management Automation の Runbook を管理する
Service Management Automation (SMA) 管理者は、Runbook を構成して実行する必要があります。 Runbook worker の設定、Runbook のスケジュール設定と追跡などのアクティビティ。 作成した Runbook に加えて、SMA に含まれる 2 つのシステム Runbook があります。
- DiscoverAllLocalModules: Runbook worker をインストールした直後に実行されます。 この Runbook は、Runbook worker がインストールされている Windows Server システム上のすべてのネイティブ モジュールを検出します。 Microsoft Azure Pack で Runbook を作成するときにアクティビティを使用できるように、これらのモジュールのアクティビティとアクティビティ メタデータが抽出されます。
- SetAutomationModuleActivityMetadata: SMA にモジュールをインポートした直後に実行されます。 この Runbook は、新しくインポートされたモジュールからアクティビティとアクティビティ メタデータを抽出し、Microsoft Azure Pack で Runbook を作成するときにアクティビティを使用できるようにします。
Runbook worker の構成
既定では、SMA で Runbook ジョブを開始すると、ランダムな Runbook worker によって選択されます。 ただし、特定の Runbook worker を使用することもできます。 これを行うには、 RunbookWorker プロパティを使用します。 詳細については Runbook の実行に関するページを参照してください。
PowerShell ISE アドオンを使用して Runbook worker を指定します。
- SMA ISE アドオン >Configuration で、SMA アカウントでサインインします。 サインインすると、 Runbooks タブに Runbook が表示されます。
- [ Runbooks タブで、特定の Runbook worker に対して実行する 1 つ以上の Runbook を選択します。
- 構成を選択し、 Runbook のプロパティドロップダウン メニューから Runbook worker を選択します。
- Make の変更を選択します。
SMA PowerShell モジュールを使用して Runbook worker を指定する
次のコマンド ライン コマンドを使用して、Runbook worker プロパティを設定することもできます。
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Sample-TestRunbook"
$workerName = "Worker1"
Set-SmaRunbookConfiguration -WebServiceEndpoint $webServer -Port $port -Name $runbookName -RunbookWorker $workerName
デプロイされているすべての Runbook worker の一覧を次のように表示できます。
$webServer = 'https://MyServer'
$port = 9090
Get-SmaRunbookWorkerDeployment -WebServiceEndpoint $webServer -Port $port
Note
現在、Microsoft Azure Pack ポータルを使用して Runbook worker を指定することはできません。 SMA ISE アドオンまたは PowerShell コマンドレットを使用します。
Runbook のスケジュール設定
指定した時刻に開始するように Runbook をスケジュールするには、それを 1 つ以上のスケジュールにリンクします。 スケジュールは、1 回実行するように構成することも、繰り返し実行するように設定することもできます。 1 つの Runbook を複数のスケジュールにリンクし、1 つのスケジュールを複数の Runbook にリンクすることができます。
スケジュールを作成する
スケジュールは、管理ポータルまたは Windows PowerShell を使用して作成できます。
管理ポータルでスケジュールを作成する
- 管理ポータルで、 [Automation]を選択します。
- [Assets タブで、[設定の追加>スケジュールの追加を選択。
- 新しいスケジュールの名前と説明を入力し、 一時 または Daily を実行するかどうかを選択します。
- 開始時刻、およびその他のオプションを必要に応じて指定します。 開始時刻のタイム ゾーンは、ローカル コンピューターのタイム ゾーンと一致します。
Windows PowerShell を使用してスケジュールを作成する
Set-SmaSchedule コマンドレットを使用して、スケジュールを作成したり、既存のスケジュールを変更したりできます。 スケジュールの開始時刻と、スケジュールを 1 回実行するか繰り返し実行するかを指定する必要があります。
次の例では、 My Daily Schedule という新しいスケジュールを作成します。 現在の日から始まり、毎日正午に 1 年間続きます。
$webServer = 'https://MyServer'
$port = 9090
$scheduleName = 'My Daily Schedule'
$startTime = (Get-Date).Date.AddHours(12)
$expiryTime = $startTime.AddYears(1)
Set-SmaSchedule -WebServiceEndpoint $webServer -Port $port -Name $scheduleName -ScheduleType OneTimeSchedule -StartTime $startTime -ExpiryTime $expiryTime -DayInterval 1
スケジュールを Runbook にリンクする
1 つの Runbook を複数のスケジュールにリンクし、1 つのスケジュールを複数の Runbook にリンクすることができます。 Runbook にパラメーターがある場合は、Runbook の起動時に使用する値を指定できます。 必須のパラメーターには値を指定する必要があります。
管理ポータルでスケジュールをリンクする
- 管理ポータルで、 Automation>Runbooks を選択します。
- スケジュールする Runbook の名前を選択し、 Schedule タブを選択します。
- Runbook が現在スケジュールにリンクされている場合は、 Link を選択します。 次に 新しいスケジュールにリンクを選択し、新しいスケジュールを作成するか、 既存のスケジュールにリンク を選択してスケジュールを選択します。
- Runbook がパラメーターを持っている場合は、その値を入力するように求められます。
Windows PowerShell を使用してスケジュールをリンクする
ScheduleName パラメーターを含む Start-SmaRunbook を使用して、Runbook にスケジュールをリンクできます。 Parameters パラメーターを使用して値を指定できます。 パラメーター値の詳細については を参照してください。
次のサンプル コマンドは、Runbook にスケジュールをリンクする方法を示しています。
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$scheduleName = "Sample-DailySchedule"
Start-SmaRunbook -WebServiceEndpoint $webServer -Port $port -Name $runbookName -ScheduleName $scheduleName -Parameters $params
Runbook の追跡
SMA で Runbook を開始すると、ジョブが作成されます。 ジョブは、Runbook の単一の実行インスタンスです。 1 つの Runbook に複数のジョブがあり、それぞれに Runbook パラメーターの独自の値セットが含まれている場合があります。
- Runbook の RunbookWorker プロパティが設定されている場合、そのワーカー サーバーはジョブをサービスします。
- ワーカー サーバーが使用できない場合、ジョブはエラーで失敗します。
- RunbookWorker プロパティに値が設定されていない場合、SMA は要求に対応するために使用可能なワーカー サーバーをランダムに選択します。
次の図は、PowerShell Workflow Runbook の Runbook ジョブのライフサイクルを示しています。
次の図は、PowerShell スクリプト Runbook の Runbook ジョブのライフサイクルを示しています。
ジョブの状態
次の表には、ジョブが取り得るさまざまな状態を説明します。
状態 | 説明 |
---|---|
完了済み | ジョブは正常に完了しました。 |
Failed | ジョブは例外で終了しました。 |
キュー登録 | ジョブは Automation ワーカー上のリソースが使用できるようになるのを待機しています。そうなれば、ジョブを起動できます。 |
開始中 | ジョブがワーカーに割り当てられており、システムがジョブを起動しているところです。 |
再開中 | システムは、ジョブが停止された後、そのジョブを再開しているところです。 |
実行中 | ジョブは実行中です。 |
Stopped | ジョブは完了した後、ユーザーによって停止されました。 |
停止中 | システムがジョブを停止させているところです。 |
Suspended | ユーザーか、システムか、または Runbook 内のコマンドによってジョブは中断されました。 中断されたジョブは、もう一度開始できます。 最後のチェックポイントから再開するか、チェックポイントがない場合は Runbook の先頭から再開します。 Runbook は、再開する可能性がある例外が発生した場合にのみ、システムによって中断されます。 既定では、 ErrorActionPreference は Continue に設定されます。つまり、例外が発生してもジョブは実行され続けます。 この変数が Stop に設定されている場合、例外が発生するとジョブは中断されます。 |
Suspending | システムは、ユーザーの要求に応じてジョブの中断を試みます。 Runbook は、次のチェックポイントに到達してからでないと、中断できません。 最後のチェックポイントを既に通過している場合は、中断する前に完了します。 |
管理ポータルでジョブの状態を表示する
Automation ダッシュボードには、SMA 環境内のすべての Runbook の概要が表示されます。
- 概要のグラフには、すべての Runbook について、各状態になり指定の日数または時間が経過したジョブの総数が表示されます。
- グラフの右上隅で時間の範囲を選択することができます。
- グラフの時間軸は、選択した時間範囲の種類に応じて変化します。
- 特定のステータスの行を表示するかどうかを選択するには、画面上部の行をクリックします。
ダッシュボードを次のように表示します。
- 管理ポータルで、 [Automation]を選択します。
- [ダッシュボード] タブを選択します。
ダッシュボードを表示する
Runbook Dashboard には、単一の Runbook の概要が表示されます。 概要のグラフには、Runbook について、それぞれの状態になり指定の日数または時間が経過したジョブの総数が表示されます。 グラフの右上隅にある時間範囲を選択できます。 グラフの時間軸は、選択した時間範囲の種類に応じて変化します。 特定のステータスの行を表示するかどうかを選択するには、画面上部の行をクリックします。
ダッシュボードを次のように表示します。
- 管理ポータルで、 [Automation]を選択します。
- Runbook の名前を選択します。
- [ダッシュボード] タブを選択します。
ジョブの詳細を表示する
特定の Runbook 用に作成されたすべてのジョブと、それらのジョブの最新の状態を、一覧で表示できます。
- ジョブの状態と、ジョブに対する最後の変更の日付範囲で一覧をフィルター処理できます。
- ジョブの名前を選択すると、その詳細情報とその出力が表示されます。
- ジョブの詳細表示には、そのジョブに指定された Runbook パラメーターの値が含まれます。
- ジョブの履歴には、出力、警告、エラー メッセージと、各レコード作成時のタイムスタンプが含まれます。
- 詳細については、 runbook の出力とメッセージを参照してください。
- ジョブのソースは、ジョブ実行時のワークフローのソース コードです。 ジョブの実行後に Runbook が更新された場合、これは Runbook の現在のバージョンと同じでない可能性があります。
次の手順を使用して Runbook のジョブを表示します。
- 管理ポータルで、 [Automation]を選択します。
- Runbook の名前を選択し、 Jobs タブを選択します。
- ジョブの 作成済みジョブ 列を選択して、ジョブの詳細と出力を表示します。
- [履歴] タブを選択すると、ジョブの履歴が表示されます。 履歴レコードを選択し、画面の下部にある View Details を選択して、レコードの詳細ビューを表示します。
- History タブで、[ソースの表示を選択。
Windows PowerShell を使用してジョブの状態を取得する
Get-SmaJob を使用すると、Runbook 用に作成されたジョブと、特定のジョブの詳細を取得できます。
- Start-SmaRunbook を使用して Windows PowerShell で Runbook を開始すると、結果のジョブが返されます。
- Get-SmaJobOutput を使用してジョブの出力を取得します。
次のサンプル コマンドは、サンプル Runbook の最後のジョブを取得し、その状態、Runbook パラメーターに指定された値、およびジョブからの出力を表示します。
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Test-Runbook"
$job = (Get-SmaJob -WebServiceEndpoint $webServer -Port $port -RunbookName $runbookName | sort LastModifiedDate -desc)[0]
$job.Status
$job.JobParameters
Get-SmaJobOutput -WebServiceEndpoint $webServer -Port $port -Id $job.Id -Stream Output
Runbook の設定を構成する
各 Runbook には複数の設定があります。 これらの設定を使用すると、Runbook の検索と管理に役立ちます。 これらの設定を構成して、Runbook のログ記録を変更することもできます。 これらの各設定について以下で説明し、その後に変更する手順を示します。
名前と説明
Runbook の作成後に名前を変更することはできません。 [説明] は省略可能であり、512 文字以内で指定します。
タグ
タグを使用すると、個別の単語や語句を割り当て、Runbook を識別するのに役立ちます。 コンマで区切ると 1 つの Runbook に複数のタグを指定できます。
ログ
既定では、詳細レコードと進行状況レコードはジョブ履歴に書き込まれません。 設定を変更し、特定の Runbook でこうしたレコードをログに記録できます。 これらのレコードの詳細については、Runbook の出力とメッセージに関するページをご覧ください。
指定された Runbook worker
既定では、Runbook ジョブは、実行するランダムな Runbook worker に割り当てられます。 特定の Runbook の設定を変更して、特定の Runbook worker で Runbook を実行できます。
管理ポータルで Runbook の設定を変更する
Runbook の Configure ページから、管理ポータルで Runbook の設定を変更できます。
管理ポータルで、 [Automation]を選択します。
[Runbook] タブを選択します。
Runbook の名前を選択します。
[構成] タブをクリックします。
PowerShell を使用して Runbook の設定を変更する
Set-SmaRunbookConfiguration コマンドレットを使用して、タグを除く Runbook のすべての設定を変更できます。 変更および追加できるのは、管理ポータルを使用した既存の Runbook のタグのみです。 PowerShell を使用して Runbook のタグを設定できるのは、 Import-SmaRunbook を使用して Runbook をインポートする場合のみです。
以下のサンプル コマンドは、ある Runbook のプロパティ設定方法を示しています。 このサンプルでは、説明を追加し、詳細レコードをログに記録することを指定します。
$webServer = 'https://MyServer'
$port = 9090
$runbookName = "Sample-TestRunbook"
Set-SmaRunbookConfiguration -WebServiceEndpoint $webServer -Port $port -Name $runbookName -Description "Sample runbook" -LogVerbose $true
Runbook worker と SQL Server 接続を暗号化する
SSL を使用して、Runbook worker プロセスと SQL サーバー間の接続をセキュリティで保護します。