# XXX fixme : when creating a 32bits VM we need to call linux32 as appropriate...s
-DEFAULT_FCDISTRO=f29
+DEFAULT_FCDISTRO=f33
DEFAULT_PLDISTRO=lxc
DEFAULT_PERSONALITY=linux64
DEFAULT_MEMORY=3072
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 ;;
ln -sf /dev/null ${lxc_root}/etc/systemd/system/"getty@.service"
rm -f ${lxc_root}/etc/systemd/system/getty.target.wants/*service || :
# can't seem to handle this one with systemctl
- chroot ${lxc_root} $personality chkconfig network on
+# second part should trigger starting with fedora31, where the network target is not manually manageable
+ chroot ${lxc_root} $personality chkconfig network on || chroot ${lxc_root} $personality systemctl enable NetworkManager
}
# overwrite container yum config
# use mirroring/ stuff instead of a hard-wired config
local repofile=$lxc_root/etc/yum.repos.d/building.repo
- yumconf_mirrors $repofile ${DIRNAME} $fcdistro \
- "" $FEDORA_MIRROR
+ yumconf_mirrors $repofile ${DIRNAME} $fcdistro "" $FEDORA_MIRROR
# the keys stuff requires adjustment though
sed -i $repofile -e s,'gpgkey=.*',"gpgkey=${FEDORA_MIRROR_KEYS}/RPM-GPG-KEY-fedora-${fedora_release}-primary,"
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
[ -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)
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 && \
# 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