#!/bin/sh JAILROOT=/jail IP=$1 CP='cp -v' if [ -z "$2" ]; then TESTIP=$IP else TESTIP=$2 fi usage () { echo $0 IP [TESTIP] echo 'Make a jail distribution for IP' echo 'If TESTIP is given, it is used to startup the jail and do' echo 'the final configurations.' exit } doit () { echo '' echo '---> ' $* echo '' eval "$*" } [ -z "$IP" ] && usage D="${JAILROOT}/${IP}" doit mkdir -p ${D} doit cd /usr/src make hierarchy DESTDIR=${D} make obj make depend make all make install DESTDIR=${D} doit cd etc make distribution DESTDIR=${D} -DNO_MAKEDEV_RUN doit mount_jaildev ${D}/dev devfsrules_jail doit cd ${D} doit ln -fs dev/null kernel doit cp -Rfp /usr/ports ${D}/usr/ ${CP} /usr/src/ports-jail.sh ${D}/usr/ports/ doit chmod ugo+x ${D}/usr/ports/ports-jail.sh ${CP} /etc/resolv.conf ${D}/etc/ doit touch ${D}/etc/fstab ${CP} /etc/make.conf ${D}/etc/ doit ${CP} /etc/rc.conf.jail ${D}/etc/rc.conf doit perl -pi.bak -e "\"s/^#ListenAddress 0\.0\.0\.0.*\$/ListenAddress ${IP}/\"" ${D}/etc/ssh/sshd_config doit ${CP} /root/.profile /root/.bashrc /root/.shrc ${D}/root/ if [ -f /etc/jailpatches/patch-login.conf ]; then echo Fixing login.conf cd ${D}/etc patch < /etc/jailpatches/patch-login.conf cap_mkdb ${D}/etc/login.conf fi cd ${D} ln -vfs usr/home home doit jail ${D} jail-${IP}.idg.nl ${TESTIP} /usr/ports/ports-jail.sh