system center orchestrator 実践と integration pack 開発

39
Start 漆間 祥宏(Yoshihiro Urushima) Microsoft MVP - SCCDM System Center Orchestrator 実践と Integration Pack 開発

Upload: s-hiro

Post on 02-Jul-2015

982 views

Category:

Technology


3 download

DESCRIPTION

Tech Fielders セミナー 東京 「System Center 2012 Standard2 Orchestrator による IT プロセスの自動化を学ぶ」の 『System center orchestrator 実践と integration pack 開発 』のスライドです。 デモ部分はありませんヽ(・ω・)ノ

TRANSCRIPT

Page 1: System center orchestrator 実践と integration pack 開発

Start 漆間祥宏(Yoshihiro Urushima)

Microsoft MVP - SCCDM

System Center Orchestrator

実践と Integration Pack 開発

Page 2: System center orchestrator 実践と integration pack 開発

自己紹介

• 漆間 祥宏 (Yoshihiro URUSHIMA)• 都内SIでインフラ エンジニアをしています。

• System Center Private/Hybrid Cloud• FIM やADFS とOffice 365• 元C#開発者なので開発も少々• その他色々

• 所属Community System Center User Group Japan (SCUGJ)• 主にITプロセス自動化やPrivate Cloud 系を担当• インフラ全般について勉強会を開催しているCommunity です

• Microsoft MVPSystem Center Cloud and Datacenter Management( Oct.2013 – Sep.2014 )

Page 3: System center orchestrator 実践と integration pack 開発

はじめに

• 今回解説させていただくRunbook 作成についての理解を深めるには実際にOrchestrator に触れて、思いつくプロセスを試行錯誤しRunbook化してみるのが一番早いと思います。

• スライドの最後に簡単な検証環境を用意する手順も記載してありますので、興味を持たれましたら是非環境を作って色々弄ってみてください。

• 今回のセッションが、そのためのきっかけとなれば幸いです。

Page 4: System center orchestrator 実践と integration pack 開発

目的とゴール

• セッションの目的• Runbookの作り方をデモを交え解説します。• Integration Toolkitを利用したカスタム アクティビティの開発と配布方法について簡単なデモを交えて解説します。

• セッションのゴール• Runbook 作成・テスト方法の理解し説明ができる。• 簡単なRunbookを作成できる。• Integration Pack開発について概要を理解し説明できる。

Page 5: System center orchestrator 実践と integration pack 開発

アジェンダ

• 実践 Orchestrator• Runbook Designer 概要• Orchestrator コンソール 概要• Runbook の作成とテストのキホン• その他機能

< 休憩 >• Integration Toolkit

• Integration Toolkit とは?• 環境構築• アクティビティの開発• Integration Pack 化

• Appendix

Page 6: System center orchestrator 実践と integration pack 開発

実践Orchestrator

Start

Page 7: System center orchestrator 実践と integration pack 開発

Runbook Designer 概要

• Runbook の管理・実行するためのツール

• アクティビティを配置し、リンクで接続することでRunbook を作成

• スケジュールやグローバル変数の設定

• 作成したRunbook をテスト実行するためのRunbook Tester が付属

• ブレークポイントで一時停止しパラメータの確認やステップ実行が可能

Page 8: System center orchestrator 実践と integration pack 開発

Orchestrator Console 概要

• Runbook の実行管理とインスタンスの状況を確認するためのWeb ツール

• Runbookの実行・停止• インスタンス・ジョブの統計• 実行中のRunbookの状況

Page 9: System center orchestrator 実践と integration pack 開発

Runbookの作成のキホン

• アクティビティを配置し、処理の順番を示すリンクでつなげていく。

• Runbookを実行したきに最初に実行されるアクティビティは1個、複数あると実行・テスト時にエラーとなる。

• アクティビティには開始にのみ使用可能なものもある。

• Runbook化対象のプロセスを箇条書きに書き出し、各項目をアクティビティに割り当てるという方法で考えると整理しやすい。• ユーザーアカウントの確認• アカウント作成• グループに追加

Page 10: System center orchestrator 実践と integration pack 開発

Runbookのテストのキホン

• ブレークポイントを設定し、途中のアクティビティで処理を止め、渡されているパラメータの確認が出来る。

• 各処理でどのようなデータを受け取りどのような結果が出ているかを確認する場合はステップ実行を利用する。

• 注意点• Designer で実行した場合とTester で実行した場合ではRunbookの実行ユーザーが違う。

• 実際に処理が動くため、本番環境でテスト実行すると内容にそって実際の処理が行われますので注意。

Page 11: System center orchestrator 実践と integration pack 開発

その他機能(スケジュール)

• Runbookが実行可能な日時の制限

• 実行を許可されていない時間に実行した場合、警告メッセージが表示されRunbookの実行は停止される

• Runbook Testerもスケジュール制限が反映されるため、テスト実行するときも実行可能なスケジュールに変更する必要が有る

Page 12: System center orchestrator 実践と integration pack 開発

その他機能(変数・カウンタ)

カウンタ• Runbook に依存しないRunbook Server単位共有されるカウンタ

変数• カウンタ同様に Runbook Server単位で共有される変数

Page 13: System center orchestrator 実践と integration pack 開発

Runbookの作成

• Demo

Page 14: System center orchestrator 実践と integration pack 開発

ポイント

• プロセスをRunbook化する場合、各手順を箇条書きに書き出し順番に対象の処理アクティビティに紐づけていくとRunbook の全体像を理解しやすく作りやすい

• Designer と Testerで実行した場合に実行アカウントが違うので注意Designer:Runbook ServerのサービスアカウントTester:Runbook Designerを起動したアカウント

• 同じ処理パターンが複数箇所にある場合、別のRunbook 化し「Runbookの呼び出し」を利用するほうがメンテナンス性は高くなる

• 実行可能な時間をスケジュールで設定することにより、実行ミスを防ぐ• リンクを条件を色分けする事により、どのような条件で分岐しているのかひと目で分かりやすくなる

Page 15: System center orchestrator 実践と integration pack 開発

QK

Page 16: System center orchestrator 実践と integration pack 開発

Orchestrator

Integration Toolkit

Start

Page 17: System center orchestrator 実践と integration pack 開発

Integration Toolkit とは?

• System Center 2012 R2 - Orchestrator Component Add-ons and Extensions

に含まれるカスタム Integration Packの開発とIntegration Packを作成する為のユーティリティ郡

• 開発用のDLL• Integration Pack Wizard

• カスタム アクティビティを配布するためのIntegration Pack を作成するウィザード形式のユーティリティ

Page 18: System center orchestrator 実践と integration pack 開発

Runbook

カスタム アクティビティ

仕組み

• 独自に開発したDLLをアクティビティに組み込み、標準アクティビティには無い処理をRunbook化することが出来る。

• 内部で完結する処理だけでなく、DBからデータを取得するというような事も可能。

ライブラリ(DLL)

初期化アクティビティ

1. FirstName

2. LastName

3. UserID

Active Directory

次アクティビティ

1.処理結果

(例)Active Directory ユーザー作成 アクティビティ

Page 19: System center orchestrator 実践と integration pack 開発

実装例1(ビジネスアプリケーション)

データ アクセス層

UI層

ビジネス ロジック層

• UI・BL・DAの3層構造となっている事が多い

• UI層をカスタム アクティビティ化することにより、Runbookからパラメータを受け取り処理を行い、Runbookに結果を返す

データ アクセス層

カスタム アクティビティ

ビジネス ロジック層

OrchestratorRunbook

Page 20: System center orchestrator 実践と integration pack 開発

実装例2(Web アプリケーション)

データ アクセス層

UI層(ブラウザ)

ビジネス ロジック層

• Web ベースのアプリケーションではユーザーはWebブラウザで操作を行うが、プログラムから処理を実行するためのAPIが公開されていることが多い

• カスタム アクティビティから公開されているAPIを呼び出し処理を行う

データ アクセス層

Web API

ビジネス ロジック層

カスタム アクティビティ

OrchestratorRunbook

Page 21: System center orchestrator 実践と integration pack 開発

実装例3(アクティビティのみで完結)

• 外部の製品と連携せず、アクティビティの内部の処理で完結するパターン

• 例えば、複数のパラメータの数値を元に計算行い結果を使用したい場合に「計算アクティビティ」など

カスタム アクティビティ

OrchestratorRunbook

Page 22: System center orchestrator 実践と integration pack 開発

環境構築(システム要件)

Integration Tool Kit 本体のDL

• System Center 2012 R2 - Orchestrator Component Add-ons and Extensions

に含まれる「System_Center_2012_R2_Orchestrator_Integration_ToolKit.exe」

システム要件• Windows Server 2008 R2 / 2012 / 2012 R2 or Windows 7 / 8

• Windows Installer 3.1 ※1

• .Net Framework 3.5 SP1

• WiX(Windows Installer XML) Toolset v3.5 ※2

• Visual Studio 2008 / 2010 / 2012 / 2013

• ※1 Windows 8は入っていないため別途DLが必要• ※2 最新版は3.8だがToolkitが対応しているのは3.5まで

Page 23: System center orchestrator 実践と integration pack 開発

環境構築(ツールのインストール)

特に問題になる箇所はなく 、順番もWIX toolsetをIntegration Toolkit前にインストールしなければならないだけ。各ツールのインストールについては表示されるメッセージを確認し「次へ」と進めていけば問題ない。

1. Windows Installer 3.1

2. .Net Framework 3.5 SP1

3. WiX Toolset v3.5

4. System Center 2012 R2 - Orchestrator Integration Toolkit

Page 24: System center orchestrator 実践と integration pack 開発

環境構築(Runbook Designerでテストする準備)

カスタムアクティビティはクラスライブラリ(DLL)のため開発中はOrchestratorで直接呼び出す事が出来ない。

Integration Toolkitをインストールすると「C:¥Program Files (x86)¥Microsoft System Center 2012 R2

¥Orchestrator¥Integration Toolkit¥Integration Packs」に「OrchestratorDotNet.oip」というIntegration Pack が入っている。

このIntegration Pack をRunbook サーバー、Runbook デザイナーに展開する事によってOrchestrator からDLL ファイルを呼び出せるアクティビティが追加される。

Page 25: System center orchestrator 実践と integration pack 開発

アクティビティの開発(プロジェクトの作成)

• プロジェクトは「Windows」の「クラスライブラリ」で作成。

• プロジェクトの参照設定で「C:¥Program Files (x86)¥Microsoft System Center 2012

R2¥Orchestrator¥Integration Toolkit¥Lib」配下にある「Microsoft.SystemCenter.Orchestrator.Integration.dll」を指定する。

Page 26: System center orchestrator 実践と integration pack 開発

アクティビティの開発(パラメータとして使用出来る型)

• Boolean

• Integer, Float

• String

• DateTime

• Enums

上記5種類

• 何故この5種類なのか?• Runbook 内部で扱える型がこの5種類のため

Page 27: System center orchestrator 実践と integration pack 開発

アクティビティの開発(処理のタイムアウトについて)

• アィティビティ内部の処理に記述する必要がある。• 処理が終わらないとずっと待機し続ける。• アクティビティの「実行状況」プロパティに「イベント通知」とあるが、指定した時間を超えた場合に処理完了後に「警告ログ」が出力されるだけ。

Page 28: System center orchestrator 実践と integration pack 開発

アクティビティの開発(コード記述)

• 「using Microsoft.SystemCenter.Orchestrator.Integration;」の追加• Runbook からデータを受け取るための「ActivityInput」の作成• Runbook へ結果を返すための「ActivityOutput」の作成• 内部の処理を記述

以上!

Page 29: System center orchestrator 実践と integration pack 開発

アクティビティの開発(サンプルコード説明)

• Using文

• Activity名などを定義

• Runbookからデータを受け取る「ActivityInput」「Param1」「Param2」という2つのパラメータをRunbookから受け取る

• Runbookへ結果を返す「ActivityOutput」

• 実際の処理部分パラメータ1と2を比較し、同じで有れば「1」異なる場合は「0」を返す

Page 30: System center orchestrator 実践と integration pack 開発

アクティビティの開発(サンプルコード)using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using Microsoft.SystemCenter.Orchestrator.Integration;

namespace TF0220.RunbookAutomation

{

[Activity("IF")]

public class Main

{

[ActivityInput("Param1")]

public string Param1 { get; set; }

[ActivityInput("Param2")]

public string Param2 { get; set; }

[ActivityOutput("Retun")]

public int MyProperty

{

get{ return judgment();}

}

private int judgment()

{

if (Param1 == Param2)

{

return 1;

}

return 0;

}

}

}

Page 31: System center orchestrator 実践と integration pack 開発

アクティビティの開発と展開

• Demo

Page 32: System center orchestrator 実践と integration pack 開発

アクティビティの開発と展開

• Demo

Page 33: System center orchestrator 実践と integration pack 開発

ポイント

• パラメータのデータ型には制限がある• タイムアウトは処理部分に独自に実装が必要• テスト時はDLLファイルのまま、テスト用アクティビティで読み込む• 処理部分は一般的なクラスライブラリ、 RunbookとのIFだけは決められた形式で定義する必要がある

• メインの処理部分はお好みで記述してください。

Page 34: System center orchestrator 実践と integration pack 開発

ポイント(EOS)

• プロセスをRunbook 化する場合、各手順を箇条書きに書き出し順番に対象の処理アクティビティに紐づけていくとRunbook の全体像を理解しやすい

• Designer と Testerで実行した場合に実行アカウントが違うので注意• 同じ処理パターンが複数箇所にある場合、別のRunbook 化し「Runbookの呼び出し」を利用するほうがメンテナンス性は高くなる

• 実行可能な時間をスケジュールで設定することにより、実行ミスを防ぐ• リンクを条件に色分けする事により、どのような条件で分岐しているのかひと目で分かりやすくなる

• パラメータのデータ型には制限あり• タイムアウトは処理部分に独自に実装が必要• テスト時はDLLファイルのまま、テスト用アクティビティで読み込む。• 処理部分は一般的なクラスライブラリ、 RunbookとのIFだけ決められた形式で定義する• 展開するときにIntegration Pack化する

Page 35: System center orchestrator 実践と integration pack 開発

Appendix.A 実践 Orchestrator

System Center 2012 - Orchestrator の Runbook の使用• http://technet.microsoft.com/ja-jp/library/hh403791.aspx

Page 36: System center orchestrator 実践と integration pack 開発

Appendix.B Integration ToolKit Reference

• Integration Toolkit システム要件 (Eng)• http://msdn.microsoft.com/en-us/library/hh855851.aspx

• System Center 2012 R2 - Orchestrator Component Add-ons and Extensions • http://www.microsoft.com/en-us/download/details.aspx?id=39622

• WiX Toolset v3.5(Stable)• http://wix.codeplex.com/releases/view/60102

• Windows Installer 3.1 Redistributable (v2) - 日本語• http://www.microsoft.com/ja-jp/download/details.aspx?id=25

• System Center 2012 - Orchestrator Integration Toolkit (Eng)• http://msdn.microsoft.com/en-us/library/hh855853.aspx

• System Center Orchestrator のIntegration Pack 開発入門リンク [Curah!]• http://curah.microsoft.com/56500/system-center-orchestrator-%E3%81%AEintegration-pack-

%E9%96%8B%E7%99%BA%E5%85%A5%E9%96%80%E3%83%AA%E3%83%B3%E3%82%AF

Page 37: System center orchestrator 実践と integration pack 開発

Appendix.C-1 とりあえず Orchestrator を触ってみたい!

セッションを聞いて「System Center Orchestrator を触ってみたい」と思った方のための参考情報

• Q.「手元に物理環境がないのですが…」• OrchestratorはSystem Center コンポーネントの中でも特に軽いコンポーネントなので、試してみるレベルであれば仮想環境でも十分です

• 手元に環境が作れないなら Windows Azure の無料評価版を申し込んでAzure VM 上に作ればいいじゃない!

• Q.「MSDN/TechNet サブスクリプションを持っていません」• 評価版を活用しましよう• System Center 2012 R2 評価版

• http://technet.microsoft.com/ja-jp/evalcenter/dn205295.aspx

• SQL Server 2012 評価版• https://www.microsoft.com/ja-jp/sqlserver/2012/downloads/default.aspx

Page 38: System center orchestrator 実践と integration pack 開発

Appendix.C-2 とりあえず Orchestrator を触ってみたい!

■Azure 上での環境構築手順• Azure VMでWindows Server 2012 R2の仮想マシンを作成

• 1VMで作成、仮装ネットワーク等は不要です• サイズは「M(2コア、3.5GB メモリ)」• 作成直後は英語になっているので必要に応じて言語を追加

• Active Directory Domain Serviceの役割を追加• Add-WindowsFeature AD-Domain-Services,RSAT-AD-PowerShell,RSAT-AD-AdminCenter,RSAT-ADDS-

Tools,GPMC

• ドメイン コントローラーへ昇格• Import-Module ADDSDeployment

Install-ADDSForest -CreateDnsDelegation:$false -DatabasePath "C:¥Windows¥NTDS" -DomainMode "Win2012R2" -DomainName "contoso.local" -DomainNetbiosName "CONTOSO" -ForestMode "Win2012R2" -InstallDns:$true -LogPath "C:¥Windows¥NTDS" -NoRebootOnCompletion:$false -SysvolPath "C:¥Windows¥SYSVOL" -Force:$true

• 実行すると復元パスワードを求められるので、確認含めて二回入力しEnter• 再起動

Page 39: System center orchestrator 実践と integration pack 開発

Appendix.C-3 とりあえず Orchestrator を触ってみたい!

• SQL Server 2012をインストール• 必須コンポーネントは「データベース エンジン サービス」のみ• 照合順序「SQL_Latin1_General_CP1_CI_AS」

• Orchestrator のインストール• 全てのコンポーネントをインストール

• IE SEC(IE セキュリティ強化の構成)を無効化

• 以上で構築完了となります。「Runbook Designer」を起動し是非色々なRunbookを作成してみてください。