X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=vbuild-init-vserver.sh;h=301b8389549fdc4771cb52064ebd062536fda756;hb=2e59ab083e35aea21faefac78b187ebf4621cd7d;hp=f9455389bac0d9e54e70184d97fe0fb5c53453bd;hpb=4b7e793dc5236d1bba5017a7e767ea1aefd884ed;p=build.git diff --git a/vbuild-init-vserver.sh b/vbuild-init-vserver.sh index f9455389..301b8389 100755 --- a/vbuild-init-vserver.sh +++ b/vbuild-init-vserver.sh @@ -85,7 +85,7 @@ function package_method () { fcdistro=$1; shift case $fcdistro in f[0-9]*|centos[0-9]*|sl[0-9]*) echo yum ;; - squeeze|wheezy|oneiric|precise|quantal) echo debootstrap ;; + squeeze|wheezy|oneiric|precise|quantal|raring) echo debootstrap ;; *) echo Unknown distro $fcdistro ;; esac } @@ -96,7 +96,7 @@ function debian_mirror () { case $fcdistro in squeeze|wheezy) echo http://ftp2.fr.debian.org/debian/ ;; - oneiric|precise|quantal) + oneiric|precise|quantal|raring) echo http://mir1.ovh.net/ubuntu/ubuntu/ ;; *) echo unknown distro $fcdistro; exit 1;; esac @@ -234,19 +234,21 @@ function setup_vserver () { # + exec /usr/sbin/vspace --mount --fs --new -- /usr/sbin/vserver ----nonamespace debuild09 start # fakerunlevel: open("/var/run/utmp"): No such file or directory # so instead we bluntly create empty dirs and hope for the best - if [ "$pkg_method" = "debootstrap" ] ; then +# if [ "$pkg_method" = "debootstrap" ] ; then [ -h /vservers/$vserver/var/run ] && [ ! -d /vservers/$vserver/var/run ] && \ # { rm -f /vservers/$vserver/var/run ; ln -s ../run /vservers/$vserver/var/run ; } { rm -f /vservers/$vserver/var/run ; mkdir /vservers/$vserver/var/run ; } [ -h /vservers/$vserver/var/lock ] && [ ! -d /vservers/$vserver/var/lock ] && \ # { rm -f /vservers/$vserver/var/lock ; ln -s ../run/lock /vservers/$vserver/var/lock ; } { rm -f /vservers/$vserver/var/lock ; mkdir /vservers/$vserver/var/lock ; } - fi +# fi # start the vserver so we can do the following operations # redirect out/err to protect against the vserver's init sequence getting stalled # mostly used for f10 vservers created remotely through ssh - $personality vserver $VERBOSE $vserver start >& /dev/null + # with ubuntu/raring, somehow this fails, so ignore retcod, + # as subsequent vserver exec will fail anyway + $personality vserver $VERBOSE $vserver start >& /dev/null || : if [ "$pkg_method" == "yum" ] ; then $personality vserver $VERBOSE $vserver exec sh -c "rm -f /var/lib/rpm/__db*" @@ -274,6 +276,10 @@ function setup_vserver () { # try the simple way, if that fails try to cross fix the rpm hashes $personality vserver $VERBOSE $vserver exec rpm --rebuilddb || translate_rpm_hashes $personality $vserver + + elif [ "$pkg_method" == "debootstrap" ] ; then + # just check the vm is running + $personality vserver $VERBOSE $vserver exec arch fi # check if the vserver kernel is using VSERVER_DEVICE (vdevmap) support @@ -296,16 +302,6 @@ function setup_vserver () { } -# debugging -# on precise it looks like at some point when installing additional packages we're losing /etc/resolv.conf -function status_resolv () { - vserver=$1; shift - echo "xxxxxxxxxxxxxxxxxxxx" status_resolv "$@" - ls -l /vservers/$vserver/etc/resolv.conf* || : - ls -lL /vservers/$vserver/etc/resolv.conf* || : - echo "xxxxxxxxxxxxxxxxxxxx" status_resolv "$@" -} - function devel_or_vtest_tools () { set -x @@ -321,8 +317,6 @@ function devel_or_vtest_tools () { pkgsfile=$(pl_locateDistroFile $DIRNAME $pldistro $PREINSTALLED) - status_resolv $vserver "entering devel_or_vtest_tools" - ### install individual packages, then groups # get target arch - use uname -i here (we want either x86_64 or i386) vserver_arch=$($personality vserver $vserver exec uname -i) @@ -351,15 +345,14 @@ function devel_or_vtest_tools () { # also adding a link to updates sounds about right ( cd /vservers/$vserver/etc/apt ; head -1 sources.list | sed -e 's, main,-updates main,' > sources.list.d/updates.list ) fi - status_resolv $vserver "before apt-get update" $personality vserver $vserver exec apt-get update - status_resolv $vserver "before apt-get upgrade" + # ignore result because that one failed on precise sc $personality vserver $vserver exec apt-get -y upgrade ||: # handle this one firt off to be sure; mostly cosmetic but avoid a huge amount of warnings $personality vserver $vserver exec apt-get install -y locales + $personality vserver $vserver exec locale-gen en_US.UTF-8 # install required packages # all in a single batch - status_resolv $vserver "before apt-get install all packages" [ -n "$packages" ] && $personality vserver $vserver exec apt-get install -y --ignore-missing $packages || : # of course, on ubuntu apt-get --ignore-missing .. does not ignore missing packages ! # check it up a bit @@ -368,7 +361,6 @@ sc $personality vserver $vserver exec apt-get -y upgrade ||: echo "==========(debian) package $package OK (1)" else # try to install it individually - so this is for ubuntu - status_resolv $vserver "before apt-get install specific to $package" $personality vserver $vserver exec apt-get install -y $package || : # still not there ? if $personality vserver $vserver exec dpkg -l $package >& /dev/null ; then @@ -378,7 +370,6 @@ sc $personality vserver $vserver exec apt-get -y upgrade ||: fi fi done - status_resolv $vserver "Done" ### xxx todo install groups with apt.. ;; *)