まくおさん,凄い
何十台ものマシンを構築することになったので,ファイル転送のために
まくおさんを入れてみました.
http://lab.klab.org/wiki/Makuosan
コンパイルは簡単です.
> ./configure --prefifx=/usr/local; make > sudo # make install
そしてファイルを同期する全てのマシンにインストールし,デーモンとして立ち
上げます.
> /usr/local/sbin/makuosan -b /usr/local/share
ここでは,/usr/local/share以下を共有するとします.
ベースディレクトリということで-bオプションだそうです.
沢山のマシンで立ち上げると,共有対象のマシンリストが見られます.
> /usr/local/bin/msync --members myhost01 191.168.1.25 (Ver1.3.0) myhost02 191.168.1.26 (Ver1.3.0) myhost03 191.168.1.27 (Ver1.3.0) myhost04 191.168.1.28 (Ver1.3.0) Total: 4 members
コマンド実行は,メンバーのどのマシン上でも同様の結果が得られます.
例えば,Apacheを全てのマシンにインストールするとします.
設定ファイルをばらまきたくなりました.
マシン固有のものは別ファイルにして,共通部分を共有します.
例えばmyhost02上で,
> mkdir -p /usr/local/share/etc/apache/ > cp /usr/local/apache2/conf/httpd.conf /usr/local/share/etc/apache
まずはドライランで動作を確認します.
> /usr/local/bin/msync -n -r etc/apache/httpd.conf (dryrun) [update:etc/apache/httpd.conf]
あくまでベースディレクトリ(/usr/local/share)からの相対パスということ
で,etc/apache/httpd.confの絶対パスは/usr/local/share/etc/apache/httpd.confになります.
コマンドを実行するディレクトリの場所にはよりません.
そして-nオプションをはずして実行すると,全てのメンバーマシン上に/usr/local/share/etc/apache/httpd.confがコピーされます.
凄く便利です.
マルチキャストで通信して存在を確認するので,スケールアウトも自動的だそうです.
なので,正確には同期じゃなくて上書きコピーです.--deleteオプションで,全マシンから一度消すことも可能です.
こいつとCapistranoを組み合わせると,便利を超えて人間はジョブ投入のみで全自動化,ができそうです.