Service Management Automation Runbook を作成する
重要
このバージョンの Service Management Automation (SMA) がサポート終了に達しました。 SMA 2022 にアップグレードすることをお勧めします。
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 を作成する
管理ポータルで、[ 新規]、[ App Services]、[ Automation]、[ Runbook]、[ クイック作成] の各を選択します。
必要な情報を入力し、[ 作成] を選択します。 Runbook 名は、先頭を英字にする必要があり、英字、数字、アンダースコア、およびダッシュを使用できます。
ここで Runbook を編集する場合は、[Runbook の 編集] を選択します。 それ以外の場合は、[ OK] を選択します。
新しい Runbook が [Runbook] タブに表示されます。
ファイルから Runbook をインポートする
管理ポータルで、 [Automation] を選択し、[オートメーション アカウント] を選択します。
[インポート] を選択します。
[ ファイルの参照] を 選択し、インポートするスクリプト ファイルを見つけます。
今すぐ Runbook を編集する場合は、[Runbook の編集] を選択 します。 それ以外の場合は、[ OK] を選択します。
新しい Runbook が Automation アカウントの [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、グローバル資産、アクティビティのコードを自動的に挿入する機能が用意されています。
管理ポータルで、 [Automation]を選択します。
[Runbooks] タブを選択します。
編集する Runbook の名前を選択します。
[作成者] タブを選択します。
画面の上部にある [下書き ] を選択するか、画面の下部にある [編集] ボタンを選択します。
必要な編集を実行します。
編集が完了したら、[ 保存] を選択します 。
最新のドラフト バージョンの Runbook を発行 する場合は 、[発行] を選択します。
Runbook、グローバル資産、アクティビティのコードを挿入する手順に必要なタブを選択します。
Runbook にコードを挿入するには、次の手順に従います。
管理ポータル エディターで、Runbook を開きます。
画面の下部にある [ 挿入 ] を選択し、[Runbook] を選択 します。
中央の列から挿入する Runbook を選択し、右矢印を選択します。
Runbook にパラメーターがある場合は一覧表示されます。
[チェック] ボタンを選択します。
選択した Runbook を実行するコードが、現在の Runbook に挿入されます。
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 を記述およびテストできます。
Windows PowerShell ISE を開きます。
SMA ISE アドオンが ISE の右側に表示されない場合は、[アドオン] メニューを開き、SMA ISE アドオンを有効にします。
[構成] タブで SMA にサインインします。
[ Runbook ] タブを選択します。SMA Runbook の一覧が表示されます。
編集する Runbook を選択し、[ ダウンロード] を選択します。 これにより、SMA から Runbook のローカル コピーがダウンロードされます。
[Open] を選択します。 これにより、Runbook を含む新しいタブが作成されます。
Runbook に必要な変更を行います。
[ 下書きのアップロード] を選択して、RUNBOOK を SMA に送信します。 これにより、Runbook の既存のドラフト バージョンが上書きされます。
Runbook の最新のドラフト バージョンを発行する場合は、[下書きの発行] を選択します。
Runbook を発行する
Runbook を作成したら、Runbook worker が実行できるように Runbook を発行する必要があります。 Service Management Automation の各 Runbook には、ドラフトおよび発行済みバージョンがあります。 実行できるのは発行バージョンのみで、編集できるのはドラフト バージョンのみです。 ドラフト バージョンを変更しても発行バージョンに影響はありません。 下書きバージョンを使用可能にする準備ができたら、それを発行すると、発行済みバージョンが下書きバージョンで上書きされます。
管理ポータルを使用して Runbook を発行する
Automation ワークスペースを選択します。
画面の上部で、 [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 Integrated Scripting Environment (ISE) は、コマンドの実行と、スクリプトの記述、テスト、デバッグを行うことができるアプリケーションです。 SMA PowerShell ISE アドオンを使用すると、このツールを使用して Automation Runbook を記述およびテストできます。
Windows PowerShell ISE を開きます。
SMA ISE アドオンが ISE の右側に表示されない場合は、[アドオン] メニューを開き、SMA ISE アドオンを有効にします。
[構成] タブで SMA にサインインします。
[ Runbook ] タブを選択します。SMA Runbook の一覧が表示されます。
Runbook を選択し、[ 下書きの発行 ] を選択して、Runbook の最新のドラフト バージョンを発行します。
Runbook をテストする
Runbook の発行済みバージョンはそのままにして、Service Management Automation 内で Runbook のドラフト バージョンをテストすることができます。 これにより、発行バージョンを置き換える前に、Runbook が正常に機能していることを確認することができます。
Runbook のテスト時に、ドラフトの Runbook が実行され、行われたすべての操作が完了します。 ジョブ履歴は作成されませんが、 Output と Warning and Error のストリームがテスト出力ウィンドウに表示されます。 $VerbosePreference variable が [続行] に設定されている場合のみ、 Verbose Streamへのメッセージが出力ウィンドウに表示されます。
Runbook をテストすると、ワークフローが通常どおり実行され、環境内のリソースに対してアクションが実行されます。 このため、Runbook のテストは、非運用環境のリソースに対してのみ行う必要があります。
Service Management Automation の Runbook をテストする
Runbook をテストするには、 管理ポータルで Runbook の下書きバージョンを開きます。 画面の下部にある [ テスト ] ボタンを選択してテストを開始します。
テスト中に Runbook を停止または中断するには、出力ウィンドウの下にあるボタンを使用します。 Runbook は、中断される場合は中断前に現在のアクティビティを完了します。 Runbook を中断した後で、停止または再開できます。
PowerShell ISE を使用して Runbook をテストする
PowerShell ISE アドオンには、Get-SMACredential や Set-SMAVariable などの標準アクティビティをエミュレートするコマンドレットが用意されています。そのため、他のスクリプトと同様に、ローカル コンピューター上で Runbook をテストできます。
グローバル アセットとその値は、ローカル テストに使用するためにオートメーション グループからダウンロードされます。 これらの値は、[ 資産 ] タブで検査または変更できます。暗号化された値はオレンジ色で表示され、その値はダウンロードされません。 これらのアセットをローカル テストで使用する場合は、その値をローカルに設定する必要があります。
SMA で Runbook をテストするには、[ SMA でドラフトのテスト] を選択します。 新しいウィンドウが開きます。 [ 新しいジョブの開始] を選択してテストを開始します。 出力がウィンドウに表示されます。
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 | Configuration Manager に接続する Service Management Automation の機能を示します。 |
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 をトリガーするために役立つシナリオを示します。 |