OpenBlockS266+Lenny(PowerPC)に、Ultramonkey-l7をいれる

http://d.hatena.ne.jp/Guutara/20091009/p1
ここでインストールした奴に、何をさせようか考えたのですが、
ロードバランサをいれてみたら面白いと思ったので、挑戦してみました。

インストールマニュアル
http://sourceforge.jp/projects/ultramonkey-l7/docs/uml7-install_manual_2.1.3-0_ja/ja/2/uml7-install_manual_2.1.3-0_ja.txt

試行錯誤の結果をまとめたので、間違いもあるかもしれません。

後日、もう一度、試してみる予定です。


カーネル
カーネルは、2.6以上ならば大丈夫そうです。
ただ、今回カーネルパッケージは、新しいのを入れてしまいました。
OpenBlockS266は、再構築するにはFlashを書き換えないとならないので、
新しいカーネルでの起動はできませんでした。

aptitude install linux-image-2.6.26-2-powerpc

途中で、2回、画面で質問されますが、両方ともNで行いました。


<ダウンロードしておくもの>
インストールマニュアルにある以下の3つです。
apr-1.2.12
apr-util-1.2.12
log4cxx-0.10.0
ultramonkey-l7-2.1.3-0

<ライブラリなどパッケージのインストール>
aptitude install libglib2.0-dev pkg-config automake g++
aptitude install libapr1-dev libaprutil1-dev
aptitude install make
aptitude install libtool
aptitude install libwww-perl libcrypt-ssleay-perl libnet-ssleay-perl libio-socket-ssl-perl libmail-imapclient-perl libnet-ldap-perl libnet-dns-perl
aptitude install libboost-dev

<ソースの修正>
log4cxxを展開したら、以下の3つのcppに
src/main/cpp/inputstreamreader.cpp
src/main/cpp/socketoutputstream.cpp
src/examples/cpp/console.cpp

#include
を1行追加します。

<手順>
最初に、カーネルパッケージを入れました。これは、不要な気もしますが、今回は入れてしまったので。。
つぎに、ライブラリなどのパッケージのインストールをします。
上記の記述の順番で、入れました。

次に、
apr-1.2.12
apr-util-1.2.12
log4cxx-0.10.0
の順番で、展開からインストールまで行います。

LinuxServer:~# tar xvfz- apr-1.2.12.tar.gz
LinuxServer:~# cd apr-1.2.12
LinuxServer:~/apr-1.2.12# ./configure --prefix=/usr
LinuxServer:~/apr-1.2.12# make
LinuxServer:~/apr-1.2.12# make install
LinuxServer:~# tar xvfz- apr-util-1.2.12.tar.gz
LinuxServer:~# cd apr-util-1.2.12
LinuxServer:~/apr-util-1.2.12# ./configure --prefix=/usr --libdir=/usr/lib --with-apr=/usr
LinuxServer:~/apr-util-1.2.12# make
LinuxServer:~/apr-util-1.2.12# make install

log4cxxは、ソースの修正を忘れずに。

LinuxServer:~# tar xvfz- apache-log4cxx-0.10.0.tar.gz
LinuxServer:~# cd apache-log4cxx-0.10.0
LinuxServer:~/apache-log4cxx-0.10.0# ./autogen.sh
LinuxServer:~/apache-log4cxx-0.10.0# ./configure --prefix=/usr --libdir=/usr/lib
LinuxServer:~/apache-log4cxx-0.10.0# make
LinuxServer:~/apache-log4cxx-0.10.0# make install

ultramonkey-l7-2.1.3-0を展開からインストールします。

LinuxServer:~# tar zxvf ultramonkey-l7-2.1.3-0.tar.gz
LinuxServer:~# cd ultramonkey-l7-2.1.3-0
LinuxServer:~/ultramonkey-l7-2.1.3-0# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
LinuxServer:~/ultramonkey-l7-2.1.3-0# make
LinuxServer:~/ultramonkey-l7-2.1.3-0# make install

<インストール後>

インストールマニュアルとちがい、以下の場所に起動スクリプトがあります。

LinuxServer:~/ultramonkey-l7-2.1.3-0# ls /etc/rc.d/init.d/l7
l7directord  l7vsd        

起動すると、

LinuxServer:~/ultramonkey-l7-2.1.3-0# /etc/rc.d/init.d/l7vsd start
Starting l7vsd: done.
touch: cannot touch `/var/lock/subsys/l7vsd': No such file or directory

とでるので、デレクトリを作成して、再度起動。

LinuxServer:~/ultramonkey-l7-2.1.3-0# mkdir -p /var/lock/subsys/ 

LinuxServer:~/ultramonkey-l7-2.1.3-0# /etc/rc.d/init.d/l7vsd start
l7vsd is running.
 
LinuxServer:~/ultramonkey-l7-2.1.3-0# /etc/rc.d/init.d/l7vsd status
l7vsd running with pid: 25752
LinuxServer:~/ultramonkey-l7-2.1.3-0# ps 25752
  PID TTY      STAT   TIME COMMAND
25752 ?        Ss     0:00 /usr/sbin/l7vsd -b

これで、無事、うごきます。(^^)

あとは、マニュアルどうりに、/etc/ha.d/conf/l7directord.cfを、
サンプルを参考に作成して

/etc/init.d/l7directord start

すれば、使えます。。

<感想>
うーん、久々に、面倒でした。
log4cxxは、testのパッケージがあるのですが、それを使うと、うまく行きませんでした。
コンパイルは、非常に時間がかかるので、やりたくはなかったんですが。(^^;;
結構、動作が軽いので、実験には良いと思いますよ。。