puppetrunはpingが通らないと動かない

このところ、gihyo.jpでペパボCTOのmizzyさんが連載している「オープンソースなシステム自動管理ツール Puppet」を試してます。サーバの集中管理ツールということで、ターゲットも狭く新しいツールなので、トラブルに遭遇するとなかなか厄介だけど、うまく動くとものすごーく快適です。

verboseモードで動作させると、エラーメッセージやその他の出力をリアルタイムで確認できて便利ですが、Internal Server Errorで止まって原因の特定が難しいこともままあります。また、
まだまだWebでの情報も少ないため、エラーメッセージでググっても英語の情報もロクに見つかりません。もちろん、止まるには止まるなりの理由があるんですが、一度トラブるとなかなか厄介です。yumで入れてるから少しバージョンが古いせいもあるのかな。

先週ハマったのが、Firewallの向こうにあるサーバに対してpuppetrunが走らなかったこと。通常のPuppet通信はTCP:8140、puppetrunによる通信はTCP:8139ですが、puppetrunでキックする対象のサーバにはpingが通らないとうまく動作しません。どうやら、puppetrunは対象ホストにまずpingを投げて、その応答を確認してから8139番ポートでの通信を開始するようです。

iptablesなり、ルータなり、商用Firewallなりでping(ICMP)を遮断している環境では、その外からpuppetrunでマニフェストを適用することは出来ません。ご注意を。

まだLDAPで管理するところまでは行ってないので、puppetrun -allとか出来ません。LDAP自体そもそも分かってないので勉強しなくちゃ…

gihyoの連載もいいけど、書籍としてまとまった情報もあると便利なので、SoftwareDesign12月号は持っておきたいですね。具体的なマニフェストの例とか、ペパボでのディレクトリ配置とか、素晴らしいまとまりっぷりです。

Software Design (ソフトウエア デザイン) 2007年 12月号 [雑誌]

Software Design (ソフトウエア デザイン) 2007年 12月号 [雑誌]