-- hd [2004-08-08 18:23:24]

1. jail十全大补丸

只是简单的使用jail会发现许多的不方便,哪么bsder们很早就给你准备了一堆增强工具,让jail的应用更加灵活。从而极大的提高了jail应用的方便程度。

1.1. jailer

使用jailer可以让你更好的管理vhost。使用方法是在安装好后的vhost中安装jailer:

cd /usr/ports/sysutil/jailer
make install
make clean

这样在你的vhost中就有了/usr/local/sbin/jailer应用程序。 启动vhost的脚本由

jail path hostname ip-number /bin/sh /etc/rc

变为

jail path hostname ip-number /usr/local/sbin/jailer

这样就可以发现在启动的进程中有一个jailer的进程,你可以用kill来重启和关闭一个jail的vhost了。

1.2. jailutils

使用了jailer后管理jail还是比较麻烦,jailutils帮助你更简单的在host中管理vhost。这里需要注意,jailer是运行在vhost中的,而jailutils是运行在host中的。

在host中安装jailutils:

cd /usr/ports/sysutils/jailutils
make install
make clean

安装后你可以使用jstart来启动一个vhost了(这是使用jailer来启动):

jstart path hostname ip-number /usr/local/sbin/jailer

可以通过jails工具查看现在运行了哪些vhost:

jails
mailtest.huandong.com
zxtest.huandong.com
fxhtest.huandong.com
devtest.huandong.com

这时你就可以通过killjail来停止一个vhost:

killjail devtest.huangdong.com

是不是很简单呢?

1.3. vhost中ports的共享

在安装后的vhost中如果不能使用ports是一个非常沮丧的事,而给每个vhost装一份ports更是资源的不充分利用。我使用mount_null来解决这个问题。 我在host中建立了一个目录/data/sys/ports,放所有vhost以及host所使用的ports目录放在里边。为了能让vhost使用这个目录,我们需要使用mount_null来连接到vhost中去,使用ln会让vhost找不着这个目录的:

mount_null /data/sys/ports /data/vhost/mailtest/usr/ports