OSS編~オーケストレーションツール Serf 02 イベントハンドラ編~


前回は『OSS編~オーケストレーションツール Serf 01インストール編~』と題して、オーケストレーションのSerfでインストールから基本操作までを試してみました。

今回は『OSS編~オーケストレーションツール Serf 02 イベントハンドラ編~』と題して、引き続きオーケストレーションのSerfでイベントハンドラを試してみたいと思います。

イベントハンドラ

Serfではイベントが発生した際に任意のスクリプトを実行する事が出来ます。

Serfのイベントタイプ

Serfでは以下のイベントのタイプがあります。
イベントのタイプにあわせて実行するスクリプトを

・member-join
クラスターへの参加
・member-leave
クラスターからの離脱
・member-failed
メンバーの障害
・member-update
メンバーのアップデート
・member-reap
リストからの削除
・user
カスタムユーザーイベント
・query
クライアント側で実行結果が確認出来るカスタムユーザーイベント

イベントハンドラの実行

1.イベントハンドラ
先ずはSerfのイベントの環境変数を出力するスクリプトを作成します。

Serfエージェントを起動する際にイベントハンドラを指定して確認してみます。

member-joinイベントでスクリプトが実施されたのが分かります。

2.カスタムユーザーイベント
user-eventを試してみます。
別ターミナルから以下のコマンドを実行します。

ユーザーイベントが実行されているのが分かります。

3.カスタムクエリー
カスタムクエリーを実行してみます。
イベントハンドラの結果が返ってきました。

4.イベントハンドラの複数設定
イベントハンドラを複数設置して試してみたいと思います。
以下のコンフィグではカスタムユーザーイベント「test」で実行されるhandler.shとカスタムクエリー「load」でのみ実行されるスクリプトになります。

load average を表示するスクリプトを作成します。

エージェント起動時に「-config-file」を指定して実行します。

各イベントを実行してみます。

それぞれのイベントにあわせてスクリプトが実行されているのが分かります。

5.暗号化
最後に暗号化を試してみます。
キーを作成してエージェント起動時に「-encrypt」で指定して実行します。

いかがでしたでしょうか?
次回もお楽しみに!!!