JSON POSTで連携ジョブを実行

先ほどのコミットにより、execjson にJSONをPOSTすることでジョブ実行を開始できるようになった。
github.com


例えば、監視アラート後の自動ジョブによって、

  • サーバーの切り離し -> httpd の停止 -> httpd の起動 -> サーバーの組み入れ

等を実施したい状況で、

  • ロードバランサーの操作(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 していくことが出来る。
※ ブラウザからも実行出来るので、定型作業と監視アラート対応のロジックは共用出来る。

定型作業のジョブが増えていくと便利になっていくのではなかろうか、、