X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=vbuild-init-vserver.sh;h=0b487f11b802b924ab160fc7b4c69f9fca20b506;hb=acb9be1f98fed99f927d5c3063628166d6068972;hp=fd77618d84e1b1a672316bd9660ff02d3ab05091;hpb=68524196d2b45b374439b75c7227ec7b26a1d0fb;p=build.git diff --git a/vbuild-init-vserver.sh b/vbuild-init-vserver.sh index fd77618d..0b487f11 100755 --- a/vbuild-init-vserver.sh +++ b/vbuild-init-vserver.sh @@ -124,10 +124,17 @@ function setup_vserver () { # for /etc/plc.d/gpg - need to init /dev/random cap=$(grep ^CAP_MKNOD /etc/vservers/$vserver/bcapabilities | wc -l) [ $cap -eq 0 ] && echo 'CAP_MKNOD' >> /etc/vservers/$vserver/bcapabilities + cap=$(grep ^CAP_NET_BIND_SERVICE /etc/vservers/$vserver/bcapabilities | wc -l) + [ $cap -eq 0 ] && echo 'CAP_NET_BIND_SERVICE' >> /etc/vservers/$vserver/bcapabilities fi $personality vyum $vserver -- -y install yum - $personality vserver $VERBOSE $vserver pkgmgmt internalize + # ditto + for i in 1 2 3 4 5 ; do + $personality vserver $VERBOSE $vserver pkgmgmt internalize && break || true + echo "Waiting for one minute" + sleep 60 + done # start the vserver so we can do the following operations $personality vserver $VERBOSE $vserver start @@ -139,9 +146,11 @@ function setup_vserver () { # set up resolv.conf cp /etc/resolv.conf /vservers/$vserver/etc/resolv.conf + # and /etc/hosts for at least localhost + [ -f /vservers/$vserver/etc/hosts ] || echo "127.0.0.1 localhost localhost.localdomain" > /vservers/$vserver/etc/hosts } -function devel_tools () { +function devel_or_vtest_tools () { set -x set -e @@ -161,8 +170,8 @@ function devel_tools () { pkgsfile=$(pl_locateDistroFile $DIRNAME $pldistro $pkgsname) # install individual packages, then groups - packages=$(pl_getPackages ${fcdistro} $pkgsfile) - groups=$(pl_getGroups ${fcdistro} $pkgsfile) + packages=$(pl_getPackages $fcdistro $pldistro $pkgsfile) + groups=$(pl_getGroups $fcdistro $pldistro $pkgsfile) [ -n "$packages" ] && $personality vserver $vserver exec yum -y install $packages [ -n "$groups" ] && $personality vserver $vserver exec yum -y groupinstall $groups @@ -195,7 +204,7 @@ function post_install_vbuild () { done # create symlink for /dev/fd - ln -fs /proc/self/fd /dev/fd + [ ! -e "/dev/fd" ] && ln -s /proc/self/fd /dev/fd # modify /etc/rpm/macros to not use /sbin/new-kernel-pkg sed -i 's,/sbin/new-kernel-pkg:,,' /etc/rpm/macros @@ -248,6 +257,9 @@ function post_install_myplc () { # be careful to backslash $ in this, otherwise it's the root context that's going to do the evaluation cat << EOF | $personality vserver $VERBOSE $vserver exec bash -x + # create symlink for /dev/fd + [ ! -e "/dev/fd" ] && ln -s /proc/self/fd /dev/fd + # customize root's prompt cat << PROFILE > /root/.profile export PS1="[$vserver] \\w # " @@ -328,7 +340,7 @@ function main () { [ -z "$personality" ] && personality=$DEFAULT_PERSONALITY setup_vserver $vserver $fcdistro $personality - devel_tools $vserver $fcdistro $pldistro $personality + devel_or_vtest_tools $vserver $fcdistro $pldistro $personality post_install $vserver $personality }