[PR] あなたが Kindle で読みたいその本、Kindle に対応したら Twitter でお知らせします。

serf-hosts をシェルスクリプトで書き直した

Posted on

タイトルのまんまですが、最近 Serf を触っています。 Serf がわからない人は @sonots さんの記事がおすすめです。

serf-hosts とは

@kentaro さんが作った serf-hosts は Serf のイベント (join, leave, failed) をトリガーに、各サーバの /etc/hosts を更新する Perl スクリプトです。クラスタにサーバが追加されたら、そのホスト名をクラスタ全体に反映してくれます。サーバがダウンしたり、クラスタから抜けたときも同様です。

/etc/hosts に書いてあると、内部 DNS サーバを立てる必要がありません。名前解決のコストもほぼゼロにできます。

機能的には満足なんですが、個人的に Perl が苦手なのでシェルスクリプトで書き直してみました。

Amazon Linux で動作確認を行っています(GNU sed にしかないオプションを使っているので Mac だと 21 行目でコケます)。

まとめ

イベントハンドラに渡すスクリプトは言語を問わないので、自分の好きな言語で書けます。アイデアがある人はぜひ。

中央集権なサーバを持たずゴシッププロトコルでクラスタを構成する Serf には、これまでのツールにはない可能性を感じます。これからもっと成長するんじゃないでしょうか。