X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=vserver-reference.init;h=7c4bd7265be17c6646e5e9f562f952e64dc67ff2;hb=3b2c8835c1ef3de840082818c0ffc8050bce0598;hp=c8170e4a917095219a487ffc32c033323c6a872f;hpb=1accc5f143b60a13472f5cb540e1d33c67e000b8;p=vserver-reference.git diff --git a/vserver-reference.init b/vserver-reference.init index c8170e4..7c4bd72 100755 --- a/vserver-reference.init +++ b/vserver-reference.init @@ -1,60 +1,20 @@ #!/bin/bash # -# vserver-reference Builds VServer reference -# -# Load before pl_conf, pl_nm, vcached, and vservers -# chkconfig: 3 60 80 -# description: Builds VServer reference image +# Builds VServer reference image. Requires the web and boot servers to +# be up, which complicates bootstrap. Alternatively, we could require +# the build server to host a local yum repository. # # Mark Huang -# Copyright (C) 2004 The Trustees of Princeton University +# Copyright (C) 2004-2005 The Trustees of Princeton University # -# $Id: vserver-reference.init,v 1.6 2004/11/17 22:54:19 mlhuang Exp $ +# $Id: vserver-reference.init,v 1.11 2005/09/01 17:20:03 mlhuang Exp $ # -case "$1" in - start|restart|reload) - ;; - stop|status) - exit 0 - ;; - *) - echo $"Usage: $0 {start|stop|restart|status}" - exit 1 - ;; -esac - -# Source function library. -. /etc/init.d/functions - -# VServer definitions -. /usr/lib/util-vserver/util-vserver-vars - -# Save stdout and stderr -exec 3>&1 -exec 4>&2 - -# Redirect stdout and stderr to a log file -exec 2>&1 -exec &>/var/log/vserver-reference.log +YUM_CONF="http://www.planet-lab.org/PlanetLabConf/v3-yum.conf" # Make /vservers -mkdir -p $VROOTDIR -chmod 000 $VROOTDIR -$PKGLIBDIR/setattr --barrier $VROOTDIR - -# Build image in /vservers/.vtmp -mkdir -p $VROOTDIR/.vtmp -VROOT=$(mktemp -d $VROOTDIR/.vtmp/vserver-reference.XXXXXX) - -# Make /vservers/.vtmp/vserver-reference.XXXXXX -mkdir -p $VROOT -chmod 755 $VROOT - -echo -n $"Building VServer reference: " >&3 2>&4 - -# Clean up before exiting if anything goes wrong -trap "umount $VROOT/proc ; umount $VROOT/dev/pts ; rm -rf $VROOT ; failure >&3 2>&4 ; echo >&3 2>&4 ; exit 255" ERR +VROOT=$PWD/vservers/vserver-reference +install -d -m 755 $VROOT MAKEDEV () { @@ -67,7 +27,13 @@ MAKEDEV () mknod -m 644 $VROOT/dev/urandom c 1 9 mknod -m 666 $VROOT/dev/tty c 5 0 mknod -m 666 $VROOT/dev/ptmx c 5 2 + # For bash command substitution + ln -nsf ../proc/self/fd /dev/fd + # For df and linuxconf touch $VROOT/dev/hdv1 + # For TUN/TAP + mkdir -p $VROOT/dev/net + mknod -m 600 $VROOT/dev/net/tun c 10 200 } # Initialize /dev in reference image @@ -81,6 +47,9 @@ mount -t devpts none $VROOT/dev/pts mkdir -p $VROOT/proc mount -t proc none $VROOT/proc +# Clean up before exiting if anything goes wrong +trap "umount $VROOT/proc ; umount $VROOT/dev/pts ; exit 255" ERR + # Create a dummy /etc/fstab in reference image mkdir -p $VROOT/etc cat > $VROOT/etc/fstab < $VROOT/etc/rpm/macros <&3 2>&4 -echo >&3 2>&4 exit 0