X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lbuild-initvm.sh;h=5dedf7f8b31797f2762ccd6a7c17ca47d74b4b68;hb=54d3133eeb801a434a1237c2cde942cc45bb8539;hp=ce220133ca6201bd18d9d05febae0a700df3bf35;hpb=5916f9d9632018d6e3cbc233f335459bee592e4d;p=build.git diff --git a/lbuild-initvm.sh b/lbuild-initvm.sh index ce220133..5dedf7f8 100755 --- a/lbuild-initvm.sh +++ b/lbuild-initvm.sh @@ -787,11 +787,10 @@ function wait_for_ssh () { [ -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 ; } || : - # when migrating, sometimes we don't have the same uid/gid mapping - # for the ssh_keys group on both host boxes... - # also this is not wuite right, as *_key gets expanded in the host context - # but using "" or \ makes it litteral... - virsh -c lxc:/// lxc-enter-namespace $lxc /usr/bin/env chown root:ssh_keys /etc/ssh/*_key + # 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) @@ -868,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 && \ @@ -876,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