しつこくKumogataの記事です。
個人的なAWS環境で検証用のサーバ群を構築するとき、内部の名前解決の設定が少々面倒でした。
CloudFormationを使う場合はテンプレートでFn::GetAttすればいいかなー、と思ったんですが後続の要素をFn::GetAttすると循環参照でエラーになりますね。でも、テンプレートにDNSの設定を入れたくない…
で、serf-hostsが使おうと思ったんですが、hostsを書き換えるノードが複数いるとうまくいかず。joinでエラーになることがあるんですが、原因は不明。
仕方ないので、イベント発生時点のメンバーをすべてhostsに追加するイベントハンドラを書いたところ、一応動作しました。
追記
って、デモのhosts
のホスト名/IPアドレスが逆になってる…orz
テンプレート
イベントハンドラ
Kumogata+Serf- event_handler.rb
デモ
所感
中〜大規模な環境で使った場合はなにか穴がありそうですが、個人的な検証用途には十分そうでした。 Serfのエラーはもう少し調べねば…