System Center Orchestrator Integration Pack(IP)を開発する

System Center Orchestrator(SCO)のSDKを使ってIntegration Pack(IPとか統合パックとも呼ばれます)を自作する方法について書きたいと思います。

 

自分の好きなRunbookを作ることができるようになると、SCOで作成される自動化プロセスに自分の好きな処理を組み込むことができるようになります。

 

例えばSCOMで検知したアラートに対して自作のRunbookを起動して自動対応したり、自作のRunbookで前処理してからSCDPMでバックアップを取得したり、System Center製品の他にもSystem Center Orchestratorで定義されている数多くのプロセスとの連携ができるようになります。

 

では、開発手順を書いていきます。

 

 

前提となるシステム条件

OS

 

開発環境

 

その他のソフトウェア

 

 

 Windows Installer XML Toolset のインストール

前提となるソフトウェアのうちWindows Installer XML Toolset は通常インストールされてないと思うので、ここで簡単にポイントを纏めておきます。

 

まずはこちらから「Wix35.msi」というインストーラーをダウンロードします。

 記事を書いている時点の最新バージョンは「3.7」ですが、必要なのは「3.5」なので注意して下さい。

 

Visual Studio 2012を使用する場合はインストーラーを起動した際に以下のポップアップが出ますが、無視してOKをクリックして下さい。

f:id:yomon8:20130629154658p:plain

 

後は特に注意点は無いので、MSIを実行したらそのままインストールを進めてください。インストーラーは以下のような画面です。バージョン3.7の場合はインストーラーの画面も全く異なるので、この画面とインストーラーの画面が違うようならばバージョンを確認してみてください。

f:id:yomon8:20130629154906p:plain

 

 

System Center 2012 Orchestrator Integration Toolkitのインストール

次はIPの開発に必要なToolkitをインストールしていきます。

Toolkitのダウンロードはこちらから以下のURLから行なって下さい。

Download System Center 2012 R2 - Orchestrator Component Add-ons and Extensions from Official Microsoft Download Center

※System Center 2012 Service Pack 1 になり.Net4.0にも対応しました

「System_Center_2012_Orchestrator_Integration_ToolKit.exe」というファイルがダウンロードされるのでEXEを解凍して、「OrchestratorToolkitSetup.msi」というファイルを取り出し、実行します。

 

f:id:yomon8:20130629155502p:plain

 

インストールが完了すると以下の画面が表示されます。

通常はToolkitが以下のパスにインストールされます。

C:\Program Files\Microsoft System Center 2012\Orchestrator\Integration Toolkit

f:id:yomon8:20130629155531p:plain

 

これでIP開発の事前準備は完了です。

 

IP用のC#クラスの開発

では遂にIPの開発に入っていきます。

今回はVisual Studio 2012を利用しますが、2010などのバージョンを利用していてもほとんど画面も一緒です。

 

新しいプロジェクトでC#でのクラスライブラリを作成します。この際に「.NET Framework 3.5」を選択するようにしてください。

f:id:yomon8:20130629155801p:plain

 

次に先ほどインストールしたToolkitをプロジェクトに取り込みます。

参照設定から参照の追加を選択してください。

f:id:yomon8:20130629160111p:plain

 

 

参照マネージャーが開くので、参照ボタンをクリックします。

C:\Program Files\Microsoft System Center 2012\Orchestrator\Integration Toolkit\Libにある、Microsoft.SystemCenter.Orchestrator.Integration.dllを選択します。

f:id:yomon8:20130629160217p:plain

 

以下の画面のようにToolkitのDLLファイルがプロジェクトに取り込まれます。

f:id:yomon8:20130629160223p:plain

 

ソリューションエクスプローラーからも確認できます。

f:id:yomon8:20130629160231p:plain

 

後はコーディングです。簡単なRunbookを書いてみました。

書けたらビルドしてDLLを作成してください。

 

 

処理の流れ

簡単な処理の流れはこのようになります。

  1. ActivityInputでRunbookの入力値を受け取り入力用の変数に設定
  2. ActivityMethod設定された変数などを利用して処理を実行、結果等を出力用の変数に設定
  3. ActivityOutputで出力用の変数をRunbookの返り値として出力

 

属性

今回は属性を利用したコーディングをしてます。

それぞれの属性の説明は以下の通りです。

[Activity]

Runbookの名前と説明になります。一つのRunbookに対して一つのActivityを作成します。

f:id:yomon8:20130629163619p:plain

 

[ActivityInput]

Runbookの入力項目、出力項目を設定します。

デフォルト値、パスワード用のマスキング設定、任意設定などの細かい設定も可能です。

f:id:yomon8:20130629163351p:plain

ActivityOutput

Runbookの出力項目を設定します。

f:id:yomon8:20130629163400p:plain

 
[ActivityMethod]

実際のRunbookでの処理を書きます。SCOのRunbookの画面には出て来ませんが、コーディングではメインとなる部分です。

 

 

インテリセンスが効くので、実際にコーディングすると色々説明見れますので是非一度書いてみて下さい。なお、今回は属性を利用した開発方法にしていますが、他にもIActivity Interfaceを使って開発する方法もあります。

 http://msdn.microsoft.com/en-us/library/microsoft.systemcenter.orchestrator.integration.iactivity.aspx

 

 

OIPファイルの生成

 最後にSCOにインポート可能なOIPファイルを生成します。

C:\Program Files\Microsoft System Center 2012\Orchestrator\Integration Toolkit\Bin

 にある「IPWizard.exe」を実行してください。そのまま「Next」を選択します。

f:id:yomon8:20130629163226p:plain

 

次にIPのパラメータを設定します。 

f:id:yomon8:20130629163232p:plain

 特に Category NameとCategory IconはそのままRunbookの画面でも利用される項目となります。

f:id:yomon8:20130629163939p:plain

 

次に先ほどC#で作成したDLLをIPに取り込みます。

f:id:yomon8:20130629163237p:plain

 

Libraryで先ほど開発したDLLを取り込むとClassを選択できるようになります。

Display NameとDescriptionは先程のコードの中のActivity属性で設定したものとなります。

f:id:yomon8:20130629163240p:plain

 

これで先ほど開発したDLLが取り込まれましたので、「Next」を選択します。

f:id:yomon8:20130629164259p:plain

 

 

 

別のDLLなどをIPに一緒に取り込んでパッケージ化することができます。

f:id:yomon8:20130629163244p:plain

 

OIPファイルの出力先を選択します。

f:id:yomon8:20130629163300p:plain

 

これでOIPファイルが出力されるので、SCOに取り込めば使うことができます。

f:id:yomon8:20130629163303p:plain

 

 

 SCOへのOIPファイルの取り込み方法はこちらの記事に書いてあります。

【System Center】Azure Integration Pack for Orchestrator -Integratoin Pack導入-