1. したいこと
- サーバーが起動したら ステータスを standby にする
- サーバーが終了(ターミネート)されたら ステータスを poweroff にする
- しばらくステータスが poweroff のやつは自動的に退役する
→ http://qiita.com/u1tnk/items/228e9115a85cf14f019e これでよい?
2. 検討内容
/etc/init.d/mackerel-status-update
とかいうスクリプト作って、サーバー起動時に start、終了時に stop オプションで呼ばれるようにする。
こんな感じ → http://qiita.com/inouet/items/11b8338bbd0093989e97
終了時には、下記のような感じのコードが実行されるようにする。(したい)
#!/bin/bash
api_key="YOUR_API_KEY"
host_id=$(cat /var/lib/mackerel-agent/id)
curl -H "X-Api-Key: $api_key" \
-H "Content-Type: application/json" \
-X POST \
-d '{"status": "poweroff"}' \
https://mackerel.io/api/v0/hosts/$host_id/status \
chkconfig で /etc/rc6.d にシンボリックリンクはられるようにする。
3. 課題
-
自分自身のサーバーIDを知る方法が分からないので、get_hosts でループしてるのがダサい。自分自身のサーバーIDをスマートに知りたい。
⇨ /var/lib/mackerel-agent/id に入っている。解決。 -
現状、get_hosts で poweroff などのステータスのサーバーが取得できないので、これだと起動時に standbyにできない。(サーバーID知れれば解決)
-
いまいち、chkconfigのrun levelの指定方法が分かってない。 rc スクリプトの書き方も怪しいので調査
-
一度退役にしたサーバーにまた当って再度 起動したときどうしよう。 現役復帰させる?それとも、そもそも退役させない?