JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化

Post on 15-Feb-2017

302 Views

Category:

Technology

3 Downloads

Preview:

Click to see full reader

Transcript

ジョブ管理もChatOpsで簡単自動化

TIS株式会社池田 大輔

Hello!I am Daisuke IKEDA (@ike_dai)TIS Inc. OSS Promotion Office.

Zabbix Specialist

ChatOps?運用(Operations)の現場において重要なのは

コミュニケーション 自動化

JobScheduler APIJobSchedulerをプログラマブルに操作するためのインタフェース

内部API 外部API

・各ジョブの中の処理から JobSchedulerを制御

利用例)- ジョブ稼働状況に応じた実行スケジュール変更

- ジョブ稼働状況に応じたジョブの追加実行

・外部ツールからJobSchedulerを制御

利用例)- 監視ツールによる結果に基づいたジョブ実行

- ワークフローツールと連動したジョブ実行

内部API● 各ジョブの中の処理からJobSchedulerを制御

● Java,JavaScript,Perl,VBScript,PowerShell等、ジョブ実行がサポートされ

ている言語からの呼び出しが可

1ジョブ処理の内部での処理フロー

spooler_init spooler_open spooler_process spooler_close spooler_on_success spooler_on_errorspooler_exit

各フローの中でJobSchedulerに対する操作が自由に可能

var order = spooler_task.order;

order.run_time.xml =

"<run_time><period single_start='15:00'/></run_time>";

ジョブの中で実行時間 (run_time)を指定する例

外部API● 外部ツールからJobSchedulerを制御

● XMLベースのリクエストをHTTPプロトコルで送付

● JOC上でできる操作は基本的にすべてAPI経由で実行可

ジョブの実行ジョブの実行履歴の確認ジョブの実行時のログの情報確認ジョブの定義情報の確認ジョブチェインに対するオーダーの発行 (ジョブチェインの実行 )各種定義の更新など

http://www.sos-berlin.com/doc/en/scheduler.doc/xml_commands.xml

外部API利用方法

$ curl -X POST http://hostname:4444 -d “<start_job job=’job1’ after=’600’ />”

基本的な呼び出し方

例)ジョブを10分後にスタートさせたい場合

リクエスト送付先URL JOCのURL (例: http://hostname:4444)

メソッド POST

POSTデータ XML形式のデータ

API充実しているけどクライアントライブラリが・・

公式で提供されているのはPHP用のライブラリのみ

https://kb.sos-berlin.com/display/PKB/How+to+communicate+with+JobScheduler+from+PHP+scripts

I tried!

Golang

Node.js

https://github.com/ike-dai/go-jobscheduler

https://github.com/ike-dai/node-jobscheduler

Hubot

GitHub社が開発しているNode.js製ChatOps用ツール

・多数のアダプター対応(Slack, HipChat, Twitter, Skype等)・会話の流れを保持するBrain機能(メモリ保持, Redis, File等)

SlackHipChat・・・

HubotHuman

communicate interpret

Services

Tools

operate

Hubot

GitHub社が開発しているNode.js製ChatOps用ツール

・多数のアダプター対応(Slack, HipChat, Twitter, Skype等)・会話の流れを保持するBrain機能(メモリ保持, Redis, File等)

SlackHipChat・・・

HubotHuman

communicate interpret

Services

Tools

operate

node-jobschedulerを活用し、

対話に基づくJobScheduler連携自動化サンプルhttps://github.com/ike-dai/hubot-jobscheduler

Hubot-JobScheduler

hubot set url http://hostname:4444

JobSchedulerhubot start job job1

OK set http://hostname:4444

brain: http://hostname:4444

OK start job1 <start_job job=”job1”/>

Hubot-JobScheduler導入方法

$ npm install hubot-jobscheduler$ vim external-scripts.json

[ "hubot-diagnostics", "hubot-help", "hubot-heroku-keepalive", "hubot-google-images", ・・・略

"hubot-jobscheduler"]

Conclusion

Let’s try !

運用業務も楽しく、プログラムで自動化

Thanks!Any questions?

You can find me at @ike_dai & dai.ikd123@gmail.com

top related