X-Git-Url: http://git.onelab.eu/?p=bootstrapfs.git;a=blobdiff_plain;f=build.sh;h=371faa89c1b9ac83b6b97a192b64b28db3f464fe;hp=646a2ec2e6a12c8f3c137d90532c8d6a27a5eaad;hb=HEAD;hpb=18991130cb89580997b7d86d95a1314c9b56ed3d diff --git a/build.sh b/build.sh index 646a2ec..371faa8 100755 --- a/build.sh +++ b/build.sh @@ -1,13 +1,11 @@ #!/bin/bash # -# Build bootstrapfs-*.tar.bz2, the reference image(s) for PlanetLab nodes. +# Build tgz root image for PlanetLab nodes. # # Mark Huang # Marc E. Fiuczynski # Copyright (C) 2005-2007 The Trustees of Princeton University # -# $Id$ -# # # This will build the bootstrafs-*.tar.bz2 images, which comprises @@ -15,6 +13,7 @@ # which is made up of just the additional files needed for a ${NAME} nodegroup # node. # +# It is expected to be in sync with the getNodeFlavour PLCAPI method PATH=/sbin:/bin:/usr/sbin:/usr/bin @@ -39,6 +38,9 @@ shift $shiftcount # expecting fcdistro and pldistro on the command line pldistro=$1; shift fcdistro=${pl_DISTRO_NAME} +arch=${pl_DISTRO_ARCH} +nodefamily=${pldistro}-${fcdistro}-${arch} +extensionfamily=${fcdistro}-${arch} # Do not tolerate errors set -e @@ -48,33 +50,33 @@ set -e # would like to pretend that we are. export PL_BOOTCD=1 -# Populate a minimal /dev and then the files for the base bootstrapfs content +# Populate a minimal /dev and then the files for the base nodeimage content vref=${PWD}/base install -d -m 755 ${vref} pl_root_makedevs $vref -pkgsfile=$(pl_locateDistroFile ../build/ ${pldistro} bootstrapfs.pkgs) -echo "* Building Bootstrapfs for ${pldistro}: $(date)" +pkgsfile=$(pl_locateDistroFile ../build/ ${pldistro} nodeimage.pkgs) +echo "* Building nodeimage for ${pldistro}: $(date)" # -k = exclude kernel* packages pl_root_mkfedora ${vref} ${pldistro} $pkgsfile # optionally invoke a post processing script after packages from # $pkgsfile have been installed -postfile=$(pl_locateDistroFile ../build/ ${pldistro} bootstrapfs.post || : ) +postfile=$(pl_locateDistroFile ../build/ ${pldistro} nodeimage.post || : ) [ -f $postfile ] && { echo "Running post install file $postfile" ; /bin/bash $postfile ${vref} || : ; } displayed="" -# for distros that do not define bootstrapfs variants -pkgs_count=$(ls ../build/config.${pldistro}/bootstrapfs-*.pkgs 2> /dev/null | wc -l) -[ $pkgs_count -gt 0 ] && for pkgs in $(ls ../build/config.${pldistro}/bootstrapfs-*.pkgs); do - NAME=$(basename $pkgs .pkgs | sed -e s,bootstrapfs-,,) +# for distros that do define node extensions +pkgs_count=$(ls ../build/config.${pldistro}/nodeimage-*.pkgs 2> /dev/null | wc -l) +[ $pkgs_count -gt 0 ] && for pkgs in $(ls ../build/config.${pldistro}/nodeimage-*.pkgs); do + NAME=$(basename $pkgs .pkgs | sed -e s,nodeimage-,,) - [ -z "$displayed" ] && echo "* Handling ${plistro} bootstrapfs extensions" + [ -z "$displayed" ] && echo "* Handling ${pldistro} nodeimage extensions" displayed=true - extension_plain=bootstrapfs-${NAME}-${pl_DISTRO_ARCH}.tar - extension_name=bootstrapfs-${NAME}-${pl_DISTRO_ARCH}.tar.bz2 + extension_plain=nodeimage-${NAME}-${extensionfamily}.tar + extension_name=nodeimage-${NAME}-${extensionfamily}.tar.bz2 echo "* Start Building $extension_name: $(date)" @@ -107,7 +109,7 @@ pkgs_count=$(ls ../build/config.${pldistro}/bootstrapfs-*.pkgs 2> /dev/null | wc # optionally invoke a post processing script after packages from # $pkgs have been installed - postfile=$(pl_locateDistroFile ../build/ ${pldistro} bootstrapfs-${NAME}.post || : ) + postfile=$(pl_locateDistroFile ../build/ ${pldistro} nodeimage-${NAME}.post || : ) [ -f $postfile ] && { echo "Running post install file $postfile" ; /bin/bash $postfile ${vdir} || : ; } # Create a copy of the ${NAME} bootstrap filesystem w/o the base @@ -148,9 +150,12 @@ done # Build the base Bootstrap filesystem # clean out yum cache to reduce space requirements yum -c ${vref}/etc/mkfedora-yum.conf --installroot=${vref} -y clean all +# create stamp on node image to help out node upgrades in the future +mkdir -p ${vref}/etc/planetlab +echo ${nodefamily} > ${vref}/etc/planetlab/nodefamily -bootstrapfs_plain=bootstrapfs-${pldistro}-${pl_DISTRO_ARCH}.tar -bootstrapfs_name=bootstrapfs-${pldistro}-${pl_DISTRO_ARCH}.tar.bz2 +bootstrapfs_plain=bootstrapfs-${nodefamily}.tar +bootstrapfs_name=bootstrapfs-${nodefamily}.tar.bz2 echo -n "* tar $bootstrapfs_name s=$(date +%H-%M-%S)" tar -cpf $bootstrapfs_plain -C ${vref} . echo -n " m=$(date +%H-%M-%S) "