Translate

2016年1月12日火曜日

JenkinsのMQTT Nortify Pluginを使ってみる



Jenkinsのプラグインを検索していたら
"MQTT Nortification Plugin"
というイマドキなプラグインを見つけた。



ので無性に試してみたくなってJenkinsへインストールしてみた。

でジョブ設定に入って「ビルド後の処理の追加」を覗いてみると
MQTT Nortification」という欄ができていた。

追加するとMQTTブローカ先の指定やPublishするトピック名、メッセージ本体、QoSなどが設定できるようになっていた。


これを試すにはMQTTブローカが必要になる。

で、ふと思ったのだけどJenkins実行環境がproxy環境配下のDockerマシン上なので、BluemixのIoT Foundationに直接メッセージを送れない..

しょうがないので、同じDocker上に別コンテナでMosquittoをたちあげた




Jenkins側のジョブでは、
Broker URL欄に"tcp://localhost:1883"、
Credentials欄はなしのまま(Mosquittoで認証設定していないため)、
Topic欄は"iot-2/evt/status/fmt/json"(なんでもいいけどIoT FoundationのQuickstartでも動かせることができるように)、
Message欄は(IoT Foundation推奨フォーマットJSON形式の)
{
"d":{
"myName":"Jenkins Test"
"result":$BUILD_RESULT,
"url":$PROJECT_URL,
"culprits":$CULPRITS
}
}

とした。
MQTTブローカに最後のメッセージを1件のこして新たに追加されたSubscriberに対して最初にそのメッセージを送りたい場合はRetain Message欄をチェックするらしい。お試しでは使わないので何もしなかった。

で、ジョブを実行するとmosquitto_sub側のターミナルにメッセージが表示され、動作していることがわかった。




CULPRITSは空か..何が入るかはもう少し使ってみないとわからないが、少なくとも成功かどうかやジョブ名はSubscriber側におくることはできるようだ。


これで、Arduino側でLチカとか使えばXFDできそう..


0 件のコメント:

Dockerのバージョンが17.xになり、Ubuntu Serverへのインストールがまたちょこっと変わった

ひさしぶりにDockerサイトへ行ったら Dockerのバージョンがかわっていた.. しかも昔Solarisとかがやったマイナーバージョンを メジャーバージョンに繰り上げしやがった。 で、 今後は毎月リリースするらしい。 今は2017年3月だから17.3.x...