keepalived、RPMパッケージ作成
cntos5.6で、LVS環境を構築するにあたり、RPMパッケージとして提供されていない
keepalivedのRPMパッケージを作成する。
管理面からソースからのインストールではなく、RPMパッケージを作成するようにしている。
build環境の準備
先にopenssl-develを入れておく。
$ yum install openssl-devel
ソースダウンロード&RPM作成
- ソースダウンロード&configure
$ cd /usr/src/redhat/SOURCES/
$ wget http://www.keepalived.org/software/keepalived-1.2.2.tar.gz
$ tar zxvf keepalived-1.2.2.tar.gz
$./configure
〜
Keepalived configuration
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Keepalived version : 1.2.2
Compiler : gcc
Compiler flags : -g -O2 -DETHERTYPE_IPV6=0x86dd
Extra Lib : -lpopt -lssl -lcrypto
Use IPVS Framework : No
IPVS sync daemon support : No
Use VRRP Framework : Yes
Use Debug flags : No
$
IPVSがサポートされていない。
どうやらkernelディレクトリを指定する必要がある模様。
kernel-develをインストールし、--with-kernel-dirオプションでディレクトリ指定する。
# yum install kernel-devel
$./configure --with-kernel-dir=/usr/src/kernels/2.6.18-274.3.1.el5-x86_64/
〜
Keepalived configuration
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Keepalived version : 1.2.2
Compiler : gcc
Compiler flags : -g -O2 -DETHERTYPE_IPV6=0x86dd
Extra Lib : -lpopt -lssl -lcrypto
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
IPVS use libnl : No
Use VRRP Framework : Yes
Use Debug flags : No
$
今度は、IPVS use libnl が認識されていない。
なので、libnl-develをインストール。
# yum install libnl-devel
$./configure --with-kernel-dir=/usr/src/kernels/2.6.18-274.3.1.el5-x86_64/
〜
Keepalived configuration
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Keepalived version : 1.2.2
Compiler : gcc
Compiler flags : -g -O2 -DETHERTYPE_IPV6=0x86dd
Extra Lib : -lpopt -lssl -lcrypto -lnl
Use IPVS Framework : Yes
IPVS sync daemon support : Yes
IPVS use libnl : Yes
Use VRRP Framework : Yes
Use Debug flags : No
$
ようやく認識された。
- RPM作成
specファイルをSPECSディレクトリにコピーし、rpmbuild。
$ cp -p keepalived.spec ../../SPECS/
$ rpmbuild -ba ../../SPECS/keepalived.spec
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
- cd keepalived-1.2.2
- grep -q 'IPVS_SUPPORT='\''_WITH_LVS_'\''' config.log
- echo 'ERROR: We do not want keeepalived lacking LVS support.'
ERROR: We do not want keeepalived lacking LVS support.
- exit 1
エラー: /var/tmp/rpm-tmp.80338 の不正な終了ステータス (%check)
RPM ビルドエラー:
/var/tmp/rpm-tmp.80338 の不正な終了ステータス (%check)
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
buildエラー...。
kernelとkernel-develのバージョンに差異があるので、kernelのアップデートを行う。
- アップデート前
kernel : 2.6.18-238
kernel-devel: 2.6.18-274.3.1
- kernelアップデート&OS再起動
OS再起動しアップデートしたkernelを認識したところで、改めてrpmbuild。
が、だめ。
$ rpmbuild -ba ../../SPECS/keepalived.spec
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
make: *** [all] エラー 2
エラー: /var/tmp/rpm-tmp.24180 の不正な終了ステータス (%build)
RPM ビルドエラー:
/var/tmp/rpm-tmp.24180 の不正な終了ステータス (%build)
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
自分ではちゃんと調べてないが、この辺の記事内容が原因なのかな?
http://moriya.xrea.jp/tdiary/20110131.html
rpmbuild時のmakeログを見ると
-
- -
ip_vs.h:19:31: error: netlink/genl/genl.h: そのようなファイルやディレクトリはありません
ip_vs.h:20:31: error: netlink/genl/ctrl.h: そのようなファイルやディレクトリはありません
-
- -
とあるから、恐らくそうなのだろう。
build環境のバージョンは、下記になっていた。
なので、keepalived-1.2.1を利用することに。
すんなり作成できた。
$ wget http://www.keepalived.org/software/keepalived-1.2.1.tar.gz
$ tar zxvf keepalived-1.2.1.tar.gz
$ cd keepalived-1.2.1/
$ ./configure --with-kernel-dir=/usr/src/kernels/2.6.18-274.3.1.el5-x86_64/
$ cp -p keepalived.spec ../../SPECS/
$ rpmbuild -ba ../../SPECS/keepalived.spec