#!/bin/bash # # 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. Already, it is # required to run the same major version of yum as the nodes. # # Mark Huang # Copyright (C) 2004-2005 The Trustees of Princeton University # # $Id: vserver-reference.init,v 1.16 2005/09/02 15:21:00 mlhuang Exp $ # # Get the URL for the production /etc/yum.conf file. XXX When MAs # begin deploying their own boot servers and/or code, this will have # to change. YUM_CONF=http://boot.planet-lab.org/$(curl --silent --insecure --form node_id=0 --form file=/etc/yum.conf https://boot.planet-lab.org/db/plnodeconf/getsinglefile.php) # Make /vservers VROOT=$PWD/vservers/vserver-reference install -d -m 755 $VROOT MAKEDEV () { rm -rf $VROOT/dev mkdir -p $VROOT/dev mknod -m 666 $VROOT/dev/null c 1 3 mknod -m 666 $VROOT/dev/zero c 1 5 mknod -m 666 $VROOT/dev/full c 1 7 mknod -m 644 $VROOT/dev/random c 1 8 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 MAKEDEV # Mount /dev/pts in reference image mkdir -p $VROOT/dev/pts mount -t devpts none $VROOT/dev/pts # Mount /proc in reference image 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 <