X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lbuild-initvm.sh;h=9dc96c08e8cef0d50d0b1fe96e39bf994c8ea97d;hb=ae04d055cb95f6a059979e2ea832eb85ef84b9a6;hp=41ff57cc68156ec0f1a28147b31b026140098450;hpb=d449bf6f8042cac568370b19acf3f833bdb24808;p=build.git diff --git a/lbuild-initvm.sh b/lbuild-initvm.sh index 41ff57cc..9dc96c08 100755 --- a/lbuild-initvm.sh +++ b/lbuild-initvm.sh @@ -30,7 +30,7 @@ function lxcroot () { # XXX fixme : when creating a 32bits VM we need to call linux32 as appropriate...s -DEFAULT_FCDISTRO=f33 +DEFAULT_FCDISTRO=f39 DEFAULT_PLDISTRO=lxc DEFAULT_PERSONALITY=linux64 DEFAULT_MEMORY=3072 @@ -731,9 +731,9 @@ function devel_or_test_tools () { local pkgsfile=$(pl_locateDistroFile $DIRNAME $pldistro $PREINSTALLED) ### install individual packages, then groups - # get target arch - use uname -i here (we want either x86_64 or i386) + # get target arch - (we want either x86_64 or i386) - local lxc_arch=$(chroot ${lxc_root} $personality uname -i) + local lxc_arch=$(chroot ${lxc_root} $personality arch) # on debian systems we get arch through the 'arch' command [ "$lxc_arch" = "unknown" ] && lxc_arch=$(chroot ${lxc_root} $personality arch) @@ -873,12 +873,19 @@ EOF # however this was too fragile, would not work for fedora14 containers # WARNING: this code is duplicated in lbuild-nightly.sh function guest_ipv4() { - local lxc=$1; shift - - local mac=$(virsh -c lxc:/// domiflist $lxc | egrep 'network|bridge' | awk '{print $5;}') - # sanity check - [ -z "$mac" ] && return 0 - arp -en | grep "$mac" | awk '{print $1;}' + lxc=$1; shift + + mac=$(virsh -c lxc:/// domiflist $lxc | grep -E 'network|bridge' | awk '{print $5;}') + [ -z "$mac" ] && { echo 1>&2 guest_ipv4 cannot find mac; return 1; } + ip=$(arp -en | grep "$mac" | awk '{print $1;}') + # if not known: run a ping and try again + if [ -z $ip ]; then + ping -c1 -w1 -W1 $lxc >& /dev/null + ping -c1 -w1 -W1 $lxc.pl.sophia.inria.fr >& /dev/null + ip=$(arp -en | grep "$mac" | awk '{print $1;}') + fi + [ -z "$ip" ] && { echo 1>&2 guest_ipv4 cannot find ip; return 1; } + echo $ip } function wait_for_ssh () { @@ -899,7 +906,7 @@ function wait_for_ssh () { while [ "$current_time" -lt "$stop_time" ] ; do echo "$counter-th attempt to reach sshd in container $lxc ..." [ -z "$guest_ip" ] && guest_ip=$(guest_ipv4 $lxc) - [ -n "$guest_ip" ] && ssh -o "StrictHostKeyChecking no" $guest_ip 'uname -i' && { + [ -n "$guest_ip" ] && ssh -o "StrictHostKeyChecking no" $guest_ip arch && { success=true; echo "SSHD in container $lxc is UP on IP $guest_ip"; break ; } || : # some of our boxes have gone through a long upgrade historically, and # so they don't end up with the same gid mapping for the ssh_keys