X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=build.sh;h=ded4410414f528b11a33371f04c01cdc92073c62;hb=e890ad7b125a2cd60c101c78edc91285eda68125;hp=7b0056ba8b301cf926df2a3c1bdf9d707cdc3772;hpb=ad52c7c072689ee496fe29d7196fe4ed91ffae1f;p=bootstrapfs.git diff --git a/build.sh b/build.sh index 7b0056b..ded4410 100755 --- a/build.sh +++ b/build.sh @@ -10,6 +10,14 @@ # $Id: buildnode.sh,v 1.12.6.1 2007/08/30 20:09:20 mef Exp $ # + +# +# This will build the Planetlab-Bootstrap.tar.bz2, which comprises +# the base root image on the node, then create the ${NAME} bootstrap image +# which is made up of just the additional files needed for a ${NAME} nodegroup +# node. +# + PATH=/sbin:/bin:/usr/sbin:/usr/bin # In both a normal CVS environment and a PlanetLab RPM @@ -43,16 +51,16 @@ set -e # would like to pretend that we are. export PL_BOOTCD=1 -# "Parse" out the packages and groups into the options passed to mkfedora -# -k = exclude kernel* packages -pkgsfile=$(pl_locateDistroFile ../build/ ${pldistro} bootstrapfs.pkgs) - echo "+++++++++++++pkgsfile=$pkgsfile (and -k)" # Populate a minimal /dev and then the files for the base PlanetLab-Bootstrap content vref=${PWD}/base install -d -m 755 ${vref} -pl_mkfedora ${vref} -k -f $pkgsfile +pl_root_makedevs $vref + +pkgsfile=$(pl_locateDistroFile ../build/ ${pldistro} bootstrapfs.pkgs) +# -k = exclude kernel* packages +pl_root_mkfedora -k -f $pkgsfile ${vref} for pkgs in ../build/config.${pldistro}/bootstrapfs-*.pkgs ; do NAME=$(basename $pkgs .pkgs | sed -e s,bootstrapfs-,,) @@ -78,10 +86,22 @@ for pkgs in ../build/config.${pldistro}/bootstrapfs-*.pkgs ; do [ -n "$groups" ] && yum -c ${vdir}/etc/yum.conf --installroot=${vdir} -y groupinstall $groups if [ -f "${vdir}/proc/cpuinfo" ] ; then - echo "WARNING: some RPM appears to have mounted /proc in ${NAME}. Unmounting it!" - umount ${vdir}/proc + echo "WARNING: some RPM appears to have mounted /proc in ${NAME}. Unmounting it!" + umount ${vdir}/proc fi + # Remove unneeded services + for service in util-vserver vprocunhide vservers-default; do + chroot ${vdir} /sbin/chkconfig $service off + done + + # Disable splaying of cron. + # At this step, vdir is base, and vref is the set of changes that end up in the nodegroup + echo > ${vdir}/etc/sysconfig/crontab + + # Add site_admin account + chroot ${vdir} /usr/sbin/useradd -p "" -u 502 -m site_admin + # Create a copy of the ${NAME} bootstrap filesystem w/o the base # bootstrap filesystem and make it smaller. This is a three step # process: @@ -109,7 +129,7 @@ for pkgs in ../build/config.${pldistro}/bootstrapfs-*.pkgs ; do rm -rf ${vdir} rm -f ${vdir}.changes mv ${vdir}-tmp ${vdir} - + echo "--------STARTING tar'ing PlanetLab-Bootstrap-${NAME}.tar.bz2: $(date)" tar -cpjf ${pldistro}-filesystems/PlanetLab-Bootstrap-${NAME}.tar.bz2 -C ${vdir} . echo "--------FINISHED tar'ing PlanetLab-Bootstrap-${NAME}.tar.bz2: $(date)"