[VMware] vRealize Automationの導入 (16)

 

※このエントリーは、vExperts Advent Calendar 2017に参加しています。

 

(0) vRAの概要
(1) vRAのコンポーネント
(2) vRAのインストール
(3) テナント作成
(4) Active Directoryの追加
(5) エンドポイントの作成
(6) ファブリックグループの作成
(7) マシンプリフィックス/ネットワークプロファイルの作成
(8) ビジネスグループの作成
(9) 予約/予約ポリシーの作成
(10)ブループリントの作成 — 公開予定
(11)サービスカタログの作成 — 公開予定
(12)ブループリントのリクエスト — 公開予定
(13)承認ポリシーの設定 — 公開予定
(14)カスタムプロパティの設定 — 公開予定
(15)vROエンドポイントの作成 — 公開予定
(16)イベントブローカーの設定(Advent Calendar参加のため、先に公開します)
(17)NSXとの統合 — 公開予定
(18)仮想マシンのインポート — 公開予定
(19)仮想マシンの解除 — 公開予定
(20)Nutanixエンドポイントの作成 — 公開予定
(21)vROpsとの統合 — 公開予定

 

(16)イベントブローカーの設定

 

今回はvRA 7.0から新しくなった”イベントブローカー(Event Broker、ライフサイクルの拡張性=Life Cycle Extensibilityともいう)”について紹介しようと思います。

 

“イベントブローカー”は6.xまで利用されていたWorkflow Stubに代わり、今後仮想マシンのライフサイクルを管理する方法です。

“イベントブローカー”を簡単にまとめると、ユーザのリクエストによりプロビジョニングされる(された)仮想マシンのライフサイクルに対してvROを連動させることになります。

この”イベントブローカー”を活用することで単なる仮想マシンのプロビジョニングやユーザ任せではなくより柔軟なサービスが提供できるようになります。

例えば…

  • 仮想マシンがプロビジョニングされたあとにDNSサーバにレコードを作成し、仮想マシンが削除されたらそのレコードを削除する
  • 特定のブループリントから仮想マシンがプロビジョニングされたら特定アプリケーションをインストールし、仮想マシンのリース期間が満了しらそのアプリケーションを削除する
  • 特定の仮想マシンを再起動する前にバックアップやスナップショットを作成する

などといった、より自動化に近いレベルになります。

 

この”イベントブローカー”を実現するためには、”イベントサブスクリプション”を利用します。
イベントサブスクリプションとは、vRAのイベントをトリガーにvROのワークフローを実行する定義です。定義というと難しそうに聞こえますが要は、あるイベントが発生したらvROのワークフローを実行するということです。 🙂

イベントサブスクリプションを作成するため、まず”イベントトピック”を指定します。”イベントトピック”は発生するイベントのことです。vRA 7.3では約20個のイベントを用意されていて下記のイベントが代表的なイベントトピックと言えます。

  • Machine lifecycle
  • Machine provisioning

 

各イベントトピックは複数のスキーマ(プロパティ)で構成されています。このプロパティを必要に応じて条件として組み立てます。あとはいつの段階でトリガーとしてvROのワークフローに渡すのかを決めたらとイベントサブスクリプションの作成が終わります。

 

“WinSvr”という名前のブループリントからデプロイされる仮想マシンはデプロイ後、DNSサーバにレコードを追加するvROワークフローを実行する作業を例としてみてみると下図のようなイメージです。

 

それでは簡単に手順を紹介します。

※このイベントブローカー機能を利用する場合は、vROが必要でエンドポイントとして作成されていること、そしてサブスクリプションで実行するvROのワークフローが作成されている必要があります。

 

① [管理]から[イベント]をクリックします。

 

② [サブスクリプション]を選択し、[新規]をクリックします。

 

③ まず[イベントトピック]からサブスクリプションで利用するイベントトピックを選びます。利用可能なイベントトピックの種類についてはここをご確認ください。この例では仮想マシンのデプロイ後DNSサーバにAレコードを登録する方法を紹介したいので、”マシンプロビジョニング”を選びました。イベントトピックを選択し、[次へ]をクリックします。

 

④ [条件]タブでは以下の条件を指定しました。

  • ブループリント名にLinuxという文字が含まれている。
  • ライフサイクルイベントが仮想マシンのプロビジョニグ(VMPSMasterWorkflow32.BuildingMachine)
  • ライフサイクルの段階はプロビジョニングのあと(POST)

上記の3つの条件をすべて満たした場合が条件です。

 

⑤ [ワークフロー]タブを選択し、手順④の条件を満たした時に実行するvROのワークフローを選択します。

※入力パラメータとして”payload”となっています。このpayloadはイベントトピックで生成されたスキーム(プロパティ)をvROに渡すプロパティです。イベントブローカーを使う場合は、これがほぼ100%必要になります。vROのワークフローの最初にこのpayloadを実装しないとワークフローは動作しません。

 

⑥ [詳細]タブで必要な情報を入力し、[完了]をクリックします。

  • 名前 : 作成するサブスクリプション名です。分かりやすいものにしましょう。
  • 優先順位 : 複数のサブスクリプションが存在する場合の実行順番です。
  • タイムアウト : ワークフローの実行タイムアウト値です。何らかの理由でワークフローの実行が完了せずこのタイムアウト値に達した場合、サブスクリプションの実行は失敗します。
  • ブロック : 複数のサブスクリプションを順に実行するようにします。このブロックを有効にしないと”優先順位”と”タイムアウト”は活性化されません。

 

※”ブロッキング”について少し補足です。サブスクリプションはその実行に対して”ブロッキング”と”ノンブロッキング”を指定します。単一イベントトピックに複数のサブスクリプションが存在する場合、各サブスクリプションは同時に実行されます。これを防ぐため、各サブスクリプションには”ブロッキング”を設定、優先順位を決めるわけです。”ノンブロッキング”は”ブロッキング”を指定したサブスクリプションが実行されたあと、またはタイムアウトで失敗した場合実行されます。

 

⑦ 作成したサブスクリプションは、ブループリント同様”ドラフト”状態のため、[公開]をクリックします。

 

⑧ 公開されたらサブスクリプションの作成は完了です。

 

⑨ 次へブループリントの[カスタムプロパティ]にサブスクリプションに渡すライフサイクルイベント用のカスタムプロパティを追加します。ここでは以下のプロパティと値をしてしました。

  • プロパティ名 : Extensibility.Lifecycle.Properties.VMPSMasterWorkflow32.BuildingMachine
  • 値 : __*,*

 

この設定によって、仮想マシンがプロビジョニングされた時の各種プロパティがサブスクリプションに渡ることになります。ちないに値の__*,*(アンダースコアアンダースコア*,*)ですが__*は非表示(hidden)値を、*は表示値のすべてを渡すとことになります。

 

これで準備完了です。

 

⑩ では、ちゃんと動作するのか確認してみます。名前がLinux6のブループリントで仮想マシンをプロビジョニングしてみます。

 

⑪ 無事リクエストが処理されています。

 

⑫ vSphere Web Clientを見てみます。”LX-VM-018″という仮想マシンがプロビジョニングされていてIPアドレスは”192.168.205.153″がネットワークプロファイルより割り当てられました。

 

⑬ 仮想マシンのプロビジョニングが完了し、”Add DNS-Host”というワークフローが正常に完了したことが確認できます。この”Add DNS-Host”は手順⑤で指定したvROのワークフローです。

 

⑭ DNSサーバを見てみるとちゃんと”LX-VM-018″が”192.168.205.153″で登録されていることが確認できます。

 

⑮ 今度はvROを覗いてみましょう。ワークフローが正常に完了したことが分かります。その際に仮想マシン名とIPアドレスがちゃんとvRAから受け渡ったことも確認できます。

 

これでイベントブローカーの利用手順は終わりです。次回からは順番とおりに紹介していきます。

 

 

[VMware] vRealize Automationの導入 (16)” への7件のフィードバック

追加

  1. ピンバック: virtual hive-jp
  2. Add DNS-HOSTというワークフローは自分で作られたのでしょうか?

    1. 過去にvRAのトレーニングで教えてもらったワークフローです。:)

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

WordPress.com ホスティング.

ページ先頭へ ↑

%d人のブロガーが「いいね」をつけました。