X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=vbuild-init-lxc.sh;h=78585fba84831b685f2f7fb82929d66679984eb7;hb=67d008d2f55ba2ec0b36b4493e27c94c8ab37149;hp=f688f248419307399608fc5edd688a9c6f14c37e;hpb=460c9f2f2c15bfc65a694770dc81be946b53f93b;p=build.git diff --git a/vbuild-init-lxc.sh b/vbuild-init-lxc.sh index f688f248..78585fba 100755 --- a/vbuild-init-lxc.sh +++ b/vbuild-init-lxc.sh @@ -19,7 +19,8 @@ DEFAULT_IFNAME=eth0 COMMAND_VBUILD="vbuild-init-lxc.sh" COMMAND_MYPLC="vtest-init-lxc.sh" -lxc_version="0.8.0-rc2" +lxc_version="lxc-0.8.0" +lxc_git_repo="git://lxc.git.sourceforge.net/gitroot/lxc/lxc" function bridge_init () { @@ -150,17 +151,17 @@ function prepare_host() { #retrieve and install lxc from sources raw_version=$(lxc-version ||: ) lxc_installed_version=$(echo $raw_version | sed -e 's,.*: ,,') - if [ "$lxc_installed_version" != "$lxc_version" ] ; then + if [ "$lxc_installed_version" != "$(echo $lxc_version | cut -d'-' -f2)" ] ; then echo "Expecting version" '['$lxc_version']' echo "Found version" '['$lxc_installed_version']' echo "Installing lxc ..." cd /root - [ -d lxc ] || git clone git://lxc.git.sourceforge.net/gitroot/lxc/lxc + [ -d lxc ] || git clone "$lxc_git_repo" cd lxc git pull git checkout $lxc_version ./autogen.sh - ./configure --prefix=/usr --exec-prefix=/usr + ./configure --prefix=/usr --exec-prefix=/usr --disable-apparmor make make install mkdir -p /usr/var/lib/ @@ -207,10 +208,16 @@ MTU=1500 EOF # set the hostname +if [[ "$fcdistro" == "f18" ]] ; then + cat < ${rootfs_path}/etc/hostname +$HOSTNAME +EOF +else cat < ${rootfs_path}/etc/sysconfig/network NETWORKING=yes HOSTNAME=$HOSTNAME EOF +fi # set minimal hosts # cat < $rootfs_path/etc/hosts @@ -254,13 +261,19 @@ function configure_fedora_init() { function configure_fedora_systemd() { - unlink ${rootfs_path}/etc/systemd/system/default.target + ln -s /lib/systemd/system/multi-user.target ${rootfs_path}/etc/systemd/system/default.target touch ${rootfs_path}/etc/fstab - chroot ${rootfs_path} ln -s /dev/null //etc/systemd/system/udev.service - chroot ${rootfs_path} ln -s /lib/systemd/system/multi-user.target /etc/systemd/system/default.target - #dependency on a device unit fails it specially that we disabled udev - sed -i 's/After=dev-%i.device/After=/' ${rootfs_path}/lib/systemd/system/getty\@.service + ln -s /dev/null ${rootfs_path}/etc/systemd/system/udev.service +# Thierry - Feb 2013 +# this was intended for f16 initially, in order to enable getty that otherwise would not start +# having a getty running is helpful only if ssh won't start though, and we see a correlation between +# VM's that refuse to lxc-stop and VM's that run crazy getty's +# so, turning getty off for now instead +# #dependency on a device unit fails it specially that we disabled udev +# sed -i 's/After=dev-%i.device/After=/' ${rootfs_path}/lib/systemd/system/getty\@.service + ln -s /dev/null ${rootfs_path}/etc/systemd/system/"getty@.service" + ln -s /dev/null ${rootfs_path}/usr/lib/systemd/system/"getty@.service" chroot ${rootfs_path} chkconfig network on } @@ -282,9 +295,21 @@ set -x MIRROR_URL=http://mirror.onelab.eu/fedora/releases/$release/Everything/$arch/os - RELEASE_URL="$MIRROR_URL/Packages/fedora-release-$release-1.noarch.rpm" - echo "Fetching from $RELEASE_URL" - curl -f "$RELEASE_URL" > $INSTALL_ROOT/fedora-release-$release.noarch.rpm + RELEASE_URL1="$MIRROR_URL/Packages/fedora-release-$release-1.noarch.rpm" + # with fedora18 the rpms are scattered by first name + RELEASE_URL2="$MIRROR_URL/Packages/f/fedora-release-$release-1.noarch.rpm" + RELEASE_TARGET=$INSTALL_ROOT/fedora-release-$release.noarch.rpm + found="" + for attempt in $RELEASE_URL1 $RELEASE_URL2; do + if curl -f $attempt -o $RELEASE_TARGET ; then + echo "Retrieved $attempt" + found=true + break + else + echo "Failed attempt $attempt" + fi + done + [ -n "$found" ] || { echo "Could not retrieve fedora-release rpm - exiting" ; exit 1; } mkdir -p $INSTALL_ROOT/var/lib/rpm rpm --root $INSTALL_ROOT --initdb @@ -574,8 +599,7 @@ function setup_lxc() { done [ -z $ssh_up ] && echo "SSHD in container $lxc is not running" - - + # rpm --rebuilddb chroot $rootfs_path rpm --rebuilddb #ssh -o "StrictHostKeyChecking no" $IP "rpm --rebuilddb" @@ -868,7 +892,8 @@ function main () { else [[ -z "$REPO_URL" ]] && usage [[ -z "$IP" ]] && usage - NETMASK=$(ifconfig br0 | grep 'inet addr' | awk '{print $4}' | sed -e 's/.*://') + + NETMASK=$(ifconfig br0 | grep 'inet ' | awk '{print $4}' | sed -e 's/.*://') GATEWAY=$(route -n | grep 'UG' | awk '{print $2}') [[ -z "$HOSTNAME" ]] && usage lxc_network_type=veth