サーバ入れ替え中(2) ezjail
- 公開日: 2009/09/21(月) 16:32[JST]
今回はezjailを使ってjail環境を構築してみる。悪魔茶屋の記事を参考にした。まず、ezjailをインストールする前にportupgradeのインストールを行っておく。それから、 sysutils/ezjail をportinstallでインストール。でmake world済みなので、 ezjail-admin update -i を実行。
さらに、 /etc/rc.conf に、以下の行を追加。
#まずjailの数だけIPアドレスを確保。 ifconfig_re0_alias0="inet 一番目のjailのIP netmask 255.255.255.255" ifconfig_re0_alias1="inet 二番目のjailのIP netmask 255.255.255.255" ifconfig_re0_alias2="inet 三番目のjailのIP netmask 255.255.255.255" #inetdのListenを限定 inetd_flags="-wW -C 60 -a ホストのIPアドレス" #nfs使わないしポートマッパーは止める rpcbind_enable="NO" #ezjailを起動可能にする ezjail_enable="YES"
で、 ezjail-admin create jail名 jailのIP でjail構築。さらに、jexecで各jail環境に入って、rootのパスワード設定と、一般ユーザの作成を行う。
続いて、各jail環境の /etc/crontab から 1,31 0-5 * * * root adjkerntz -a という行をコメントアウト。さらに、 /etc/resolv.conf を適切に設定しておく。さらに、各jail環境で空の /etc/fstab を作っておく。また、各jail環境で、以下のようにしてローカルタイムをJSTに合わせておく。
touch /etc/wall_cmos_clock ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
また、 各jail環境の /etc/rc.conf と /etc/periodic.conf を以下のように設定しておく。
/etc/rc.conf
network_interfaces="" rpcbind_enable="NO" syslogd_flags="-ss" tcp_keepalive="NO" tcp_extensions="NO" cron_flags="-J 15"
/etc/periodic.conf
daily_status_disks_enable="NO" daily_status_network_enable="NO" daily_status_security_noamd="YES" daily_status_security_chkmounts_enable="NO" daily_status_security_ipfdenied_enable="NO" daily_status_security_ipfwdenied_enable="NO" daily_status_security_ipfwlimit_enable="NO" daily_status_security_pfdenied_enable="NO" daily_status_security_ip6fwdenied_enable="NO" daily_status_security_ip6fwlimit_enable="NO" daily_status_security_kernelmsg_enable="NO"
続いて、portsの設定。まず、各jail環境の``/etc/make.conf`` に WITHOUT_X11="YES" を追加。そして、ホストの /etc/fstab に、以下の行を追加する。
/usr/ports /usr/jails/basejail/usr/ports nullfs ro,noauto 0 0
で、必要に応じてホスト環境で mount /usr/jails/JAIL名/basejail/usr/ports を実行すれば、各jail環境でportsが使えるようになる。