Service Management Automation の Runbook を管理する

重要

このバージョンの Service Management Automation (SMA) がサポート終了に達しました。 SMA 2022 にアップグレードすることをお勧めします。

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 を指定します。

  1. SMA ISE アドオン構成で>、SMA アカウントでサインインします。 サインインすると、 [Runbook] タブに自分の Runbook が表示されます。
  2. [Runbook] タブで、特定の runbook worker に対して実行する Runbook を 1 つ以上選択します。
  3. [ 構成] を選択し、[ Runbook のプロパティの構成] でドロップダウン メニューから Runbook worker を選択します。
  4. [ 変更を加えます] を選択します

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

注意

現在、Microsoft Azure Pack ポータルを使用して Runbook worker を指定することはできません。 SMA ISE アドオンまたは PowerShell コマンドレットのいずれかを使用してください。

Runbook をスケジュールする

指定した日時に開始するように Runbook をスケジュールするには、それを 1 つ以上のスケジュールにリンクします。 スケジュールは、1 回実行するように構成することも、繰り返しに設定することもできます。 1 つの Runbook を複数のスケジュールにリンクし、1 つのスケジュールを複数の Runbook にリンクすることができます。

スケジュールを作成する

スケジュールは、管理ポータルまたはWindows PowerShellを使用して作成できます。

管理ポータルでスケジュールを作成する

  1. 管理ポータルで、 [Automation]を選択します。
  2. [アセット] タブで、[設定>追加] [スケジュールの追加] の順に選択します
  3. 新しいスケジュールの名前と説明を入力し、 One TimeDaily のどちらを実行するかを選択します。
  4. [開始時刻] および必要に応じて他のオプションを指定します。 開始時刻のタイム ゾーンは、ローカル コンピューターのタイム ゾーンと一致します。

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

1 つの Runbook を複数のスケジュールにリンクし、1 つのスケジュールを複数の Runbook にリンクすることができます。 Runbook にパラメーターがある場合は、Runbook の起動時に使用する値を指定できます。 必須のパラメーターには値を指定する必要があります。

  1. 管理ポータルで、 [Automation]>[Runbook] を選択します。
  2. スケジュールする Runbook の名前を選択し、[ スケジュール ] タブを選択します。
  3. Runbook が現在スケジュールにリンクされている場合は、[リンク] を選択 します。 次 に、[新しいスケジュールにリンク] を選択し、新しいスケジュールを作成するか、[ 既存のスケジュールにリンク ] を選択してスケジュールを選択します。
  4. Runbook がパラメーターを持っている場合は、その値を入力するように求められます。

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 の単一の実行インスタンスです。 単一の Runbook に複数のジョブがあり、Runbook のパラメーターとしてそれぞれ独自の値セットが指定されている可能性があります。

  • Runbook の RunbookWorker プロパティが設定されている場合、その worker サーバーによってジョブにサービスが提供されます。
  • worker サーバーを使用できない場合、ジョブはエラーで失敗します。
  • RunbookWorker プロパティが設定されていない場合、SMA は要求をサービスするために使用可能なワーカー サーバーをランダムに選択します。

次の図は、PowerShell ワークフロー Runbook の Runbook ジョブのライフサイクルを示したものです。

PowerShell ワークフローを示す図。

次の図は、PowerShell スクリプト Runbook の Runbook ジョブのライフサイクルを示したものです。

PowerShell スクリプトを示す図。

ジョブの状態

次の表には、ジョブが取り得るさまざまな状態を説明します。

Status 説明
完了 ジョブは正常に完了しました。
失敗 ジョブは例外で終了しました。
キューに登録済み ジョブは Automation ワーカー上のリソースが使用できるようになるのを待機しています。そうなれば、ジョブを起動できます。
開始中 ジョブがワーカーに割り当てられており、システムがジョブを起動しているところです。
再開中 システムは、ジョブが停止された後、そのジョブを再開しているところです。
実行中 ジョブは実行中です。
停止済み ジョブは完了した後、ユーザーによって停止されました。
停止中 システムがジョブを停止させているところです。
Suspended ユーザーか、システムか、または Runbook 内のコマンドによってジョブは中断されました。 中断されているジョブは、もう一度開始できます。 最後のチェックポイントから、チェックポイントがない場合は Runbook の先頭から、再開されます。

Runbook は、再開する可能性がある例外が発生した場合にのみ、システムによって中断されます。 既定では、ErrorActionPreference は、例外発生時にジョブが実行を継続することを意味する Continue に設定されます。 この変数を Stop に設定すると、例外発生時にジョブは中断されます。
中断中 ユーザーの要求により、システムはジョブを中断しようとしています。 Runbook は、次のチェックポイントに到達してからでないと、中断できません。 最後のチェックポイントに既に到達している場合は、完了してからでないと中断できません。

管理ポータルでジョブの状態を表示する

Automation ダッシュボードには、SMA 環境内のすべての Runbook の概要が表示されます。

  • 概要のグラフには、すべての Runbook について、各状態になり指定の日数または時間が経過したジョブの総数が表示されます。
  • グラフの右上隅で時間の範囲を選択することができます。
  • グラフの時間軸は、選択した時間の範囲の種類に応じて変わります。
  • 特定の状態の行を表示するかどうかを選択するには、画面の上部にある行をクリックします。

次のようにしてダッシュボードを表示します。

  1. 管理ポータルで、 [Automation]を選択します。
  2. [ダッシュボード] タブを選択します。

ダッシュボードを表示する

Runbook Dashboard には、単一の Runbook の概要が表示されます。 概要のグラフには、Runbook について、それぞれの状態になり指定の日数または時間が経過したジョブの総数が表示されます。 グラフの右上隅にある時間範囲を選択できます。 グラフの時間軸は、選択した時間の範囲の種類に応じて変わります。 特定の状態の行を表示するかどうかを選択するには、画面の上部にある行をクリックします。

次のようにしてダッシュボードを表示します。

  1. 管理ポータルで、 [Automation]を選択します。
  2. Runbook の名前を選択します。
  3. [ダッシュボード] タブを選択します。

ジョブの詳細を表示する

特定の Runbook 用に作成されたすべてのジョブと、それらのジョブの最新の状態を、一覧で表示できます。

  • 一覧は、ジョブの状態およびジョブの最終変更日の範囲でフィルター処理できます。
  • ジョブの名前を選択すると、その詳細情報とその出力が表示されます。
  • ジョブの詳細表示には、そのジョブに指定された Runbook パラメーターの値が含まれます。
  • ジョブの履歴には、出力、警告、エラー メッセージと、各レコード作成時のタイムスタンプが含まれます。
  • Runbook の出力とメッセージの詳細を確認してください。
  • ジョブのソースは、ジョブ実行時のワークフローのソース コードです。 ジョブの実行後に Runbook が更新された場合、これは Runbook の現在のバージョンと同じでない可能性があります。

次の手順を使用して Runbook のジョブを表示します。

  1. 管理ポータルで、 [Automation]を選択します。
  2. Runbook の名前を選択し、[ ジョブ ] タブを選択します。
  3. ジョブの [ ジョブの作成 ] 列を選択して、その詳細と出力を表示します。
  4. [履歴] タブを選択すると、ジョブの履歴が表示されます。 履歴レコードを選択し、画面の下部にある [ 詳細の表示 ] を選択して、レコードの詳細ビューを表示します。
  5. [ 履歴 ] タブで、[ ソースの表示] を選択します。

Windows PowerShell を使用してジョブの状態を取得する

Get-SmaJob を使用して、Runbook 用に作成されたジョブと特定のジョブの詳細を取得できます。

  • Windows PowerShell で Start-SmaRunbook を使用して 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 の作成後に Runbook の名前を変更することはできません。 [説明] は省略可能で、長さは最大 512 文字にすることができます。

Tags

タグを使用すると、個別の単語や語句を割り当て、Runbook を識別するのに役立ちます。 コンマで区切ると 1 つの Runbook に複数のタグを指定できます。

ログの記録

既定では、詳細レコードと進行状況レコードはジョブ履歴に書き込まれません。 設定を変更し、特定の Runbook でこうしたレコードをログに記録できます。 これらのレコードの詳細については、Runbook の出力とメッセージに関するページをご覧ください。

指定された runbook worker

既定では、Runbook ジョブは、実行するランダムな Runbook worker に割り当てられます。 特定の Runbook ワーカーで Runbook を実行するように、特定の Runbook の設定を変更できます。

管理ポータルで Runbook の設定を変更する

Runbook の [ 構成 ] ページから、管理ポータルで Runbook の設定を変更できます。

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

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

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

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

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 サーバーの接続を暗号化する

SSL を使用して、runbook worker プロセスと SQL Server の間の接続をセキュリティで保護します

次の手順