X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lbuild-initvm.sh;h=35e4c388a2a2257874f69c6ee710a86ce17f8a74;hb=07b4eac09c0f064a353431a5aebc941e1d4157f7;hp=2725f0bcadf32c8029f5dc584f6c1e39a25c7a90;hpb=48518c14cc5d98166f0b084286b82f2431c4fdb3;p=build.git diff --git a/lbuild-initvm.sh b/lbuild-initvm.sh index 2725f0bc..35e4c388 100755 --- a/lbuild-initvm.sh +++ b/lbuild-initvm.sh @@ -82,7 +82,7 @@ function package_method () { case $fcdistro in f[0-9]*|centos[0-9]*|sl[0-9]*) echo dnf ;; - wheezy|jessie|precise|trusty|utopic|vivid|wily|xenial) + wheezy|jessie|trusty|xenial|bionic) echo debootstrap ;; *) echo Unknown distro $fcdistro ;; @@ -375,7 +375,7 @@ function debian_mirror () { case $fcdistro in wheezy|jessie) echo http://ftp2.fr.debian.org/debian/ ;; - precise|trusty|utopic|vivid|wily|xenial) + trusty|xenial|bionic) echo http://www-ftp.lip6.fr/pub/linux/distributions/Ubuntu/archive/ ;; *) echo unknown distro $fcdistro; exit 1;; esac @@ -783,13 +783,17 @@ function wait_for_ssh () { local counter=1 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' && { - success=true; echo "SSHD in container $lxc is UP on IP $guest_ip"; break ; } || : - counter=$(($counter+1)) - sleep 10 - current_time=$(date +%s) + 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' && { + 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 + # group as the ones in the guest that result from a fresh install + virsh -c lxc:/// lxc-enter-namespace $lxc /bin/bash -c "chown root:ssh_keys /etc/ssh/*_key" || : + counter=$(($counter+1)) + sleep 10 + current_time=$(date +%s) done # Thierry: this is fatal, let's just exit with a failure here @@ -863,6 +867,8 @@ function main () { local lxc_root=$(lxcroot $lxc) # rainchecks + # when using with the -i option, checking that $lxc_root is void + # is a little too much stress.. almost_empty $lxc_root || \ { echo "container $lxc already exists in $lxc_root - exiting" ; exit 1 ; } virsh -c lxc:/// domuuid $lxc >& /dev/null && \ @@ -871,9 +877,13 @@ function main () { # if IMAGE, copy the provided rootfs to lxc_root if [ -n "$IMAGE" ] ; then - [ ! -d "$IMAGE" ] && \ - { echo "$IMAGE rootfs folder does not exist - exiting" ; exit 1 ; } - rsync -a $IMAGE/ $lxc_root/ + if [ ! -d "$IMAGE" ]; then + echo "$IMAGE rootfs folder does not exist - exiting" + exit 1 + else + echo "Copying $IMAGE into $lxc_root with rsync --archive --delete" + rsync --archive --delete $IMAGE/ $lxc_root/ + fi fi # check we've exhausted the arguments