![Page 1: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/1.jpg)
ジョブ管理もChatOpsで簡単自動化
TIS株式会社池田 大輔
![Page 2: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/2.jpg)
Hello!I am Daisuke IKEDA (@ike_dai)TIS Inc. OSS Promotion Office.
Zabbix Specialist
![Page 3: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/3.jpg)
ChatOps?運用(Operations)の現場において重要なのは
コミュニケーション 自動化
![Page 4: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/4.jpg)
JobScheduler APIJobSchedulerをプログラマブルに操作するためのインタフェース
内部API 外部API
・各ジョブの中の処理から JobSchedulerを制御
利用例)- ジョブ稼働状況に応じた実行スケジュール変更
- ジョブ稼働状況に応じたジョブの追加実行
・外部ツールからJobSchedulerを制御
利用例)- 監視ツールによる結果に基づいたジョブ実行
- ワークフローツールと連動したジョブ実行
![Page 5: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/5.jpg)
内部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)を指定する例
![Page 6: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/6.jpg)
外部API● 外部ツールからJobSchedulerを制御
● XMLベースのリクエストをHTTPプロトコルで送付
● JOC上でできる操作は基本的にすべてAPI経由で実行可
ジョブの実行ジョブの実行履歴の確認ジョブの実行時のログの情報確認ジョブの定義情報の確認ジョブチェインに対するオーダーの発行 (ジョブチェインの実行 )各種定義の更新など
http://www.sos-berlin.com/doc/en/scheduler.doc/xml_commands.xml
![Page 7: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/7.jpg)
外部API利用方法
$ curl -X POST http://hostname:4444 -d “<start_job job=’job1’ after=’600’ />”
基本的な呼び出し方
例)ジョブを10分後にスタートさせたい場合
リクエスト送付先URL JOCのURL (例: http://hostname:4444)
メソッド POST
POSTデータ XML形式のデータ
![Page 8: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/8.jpg)
API充実しているけどクライアントライブラリが・・
![Page 9: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/9.jpg)
公式で提供されているのはPHP用のライブラリのみ
https://kb.sos-berlin.com/display/PKB/How+to+communicate+with+JobScheduler+from+PHP+scripts
![Page 10: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/10.jpg)
I tried!
![Page 11: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/11.jpg)
Golang
Node.js
https://github.com/ike-dai/go-jobscheduler
https://github.com/ike-dai/node-jobscheduler
![Page 12: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/12.jpg)
Hubot
GitHub社が開発しているNode.js製ChatOps用ツール
・多数のアダプター対応(Slack, HipChat, Twitter, Skype等)・会話の流れを保持するBrain機能(メモリ保持, Redis, File等)
SlackHipChat・・・
HubotHuman
communicate interpret
Services
Tools
operate
![Page 13: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/13.jpg)
Hubot
GitHub社が開発しているNode.js製ChatOps用ツール
・多数のアダプター対応(Slack, HipChat, Twitter, Skype等)・会話の流れを保持するBrain機能(メモリ保持, Redis, File等)
SlackHipChat・・・
HubotHuman
communicate interpret
Services
Tools
operate
![Page 14: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/14.jpg)
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”/>
![Page 15: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/15.jpg)
Hubot-JobScheduler導入方法
$ npm install hubot-jobscheduler$ vim external-scripts.json
[ "hubot-diagnostics", "hubot-help", "hubot-heroku-keepalive", "hubot-google-images", ・・・略
"hubot-jobscheduler"]
![Page 16: JobSchedulerユーザカンファレンス2016 LT ChatOpsでジョブ管理自動化](https://reader030.vdocuments.site/reader030/viewer/2022020314/58a3b8a21a28ab62218b54d3/html5/thumbnails/16.jpg)
Conclusion
Let’s try !
運用業務も楽しく、プログラムで自動化