JSON POSTで連携ジョブを実行
先ほどのコミットにより、execjson にJSONをPOSTすることでジョブ実行を開始できるようになった。
github.com
例えば、監視アラート後の自動ジョブによって、
等を実施したい状況で、
- ロードバランサーの操作(haproxyctl operation=[up|down] servername=サーバー名)
- httpd の停止・起動(httpdctl operation operation=[start|stop] servername=サーバー名)
は既にジョブとしてある場合、以下のようなJSONを記述して、POSTすればよい。
※ サーバー名はアラートから取得する
$ cat 20161005-071015.json { xxx: .. joblist: [ { "name": "haproxyctl", "operation": "down", "servername": "サーバー名", }, { "name": "httpdctl", "operation": "stop", "servername": "サーバー名", }, { "name": "httpdctl", "operation": "start", "servername": "サーバー名", } { "name": "haproxyctl", "operation": "up", "servername": "サーバー名", } ] } $ curl -F putjson=@20161005-071015.json localhost:8000/app1/postjson
こんな感じで、fabricベースのジョブをJSON API化 していくことが出来る。
※ ブラウザからも実行出来るので、定型作業と監視アラート対応のロジックは共用出来る。
定型作業のジョブが増えていくと便利になっていくのではなかろうか、、