X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=lbuild-initvm.sh;h=df78c11fa5388accbb1bd339c8ed2d891b441a8b;hb=refs%2Fheads%2Fnm-one-spec;hp=c355c6ca577aea5be7f0fd10ed82cb3b9ecc91a8;hpb=1b7c5a2156560d67e5dbc738d24d76deeb8ddbce;p=build.git diff --git a/lbuild-initvm.sh b/lbuild-initvm.sh index c355c6ca..df78c11f 100755 --- a/lbuild-initvm.sh +++ b/lbuild-initvm.sh @@ -32,6 +32,8 @@ PUBLIC_BRIDGE=br0 VIF_GUEST=eth0 ########## +FEDORA_MIRROR_BASE="http://mirror.onelab.eu/fedora/" +FEDORA_MIRROR_KEYS="http://mirror.onelab.eu/keys/" FEDORA_PREINSTALLED="yum initscripts passwd rsyslog vim-minimal dhclient chkconfig rootfiles policycoreutils openssh-server openssh-clients" DEBIAN_PREINSTALLED="openssh-server openssh-client" @@ -69,7 +71,7 @@ function package_method () { fcdistro=$1; shift case $fcdistro in f[0-9]*|centos[0-9]*|sl[0-9]*) echo yum ;; - squeeze|wheezy|jessie|oneiric|precise|quantal|raring|saucy) echo debootstrap ;; + squeeze|wheezy|jessie|oneiric|precise|quantal|raring|saucy|trusty) echo debootstrap ;; *) echo Unknown distro $fcdistro ;; esac } @@ -97,31 +99,20 @@ function almost_empty () { count=$(cd $dir; ls | wc -l); [ $count -le 1 ]; } -############################## -function check_yum_installed () { - package=$1; shift - rpm -q $package >& /dev/null || yum -y install $package -} - -function check_yumgroup_installed () { - group="$1"; shift - yum grouplist "$group" | grep -q Installed || { yum -y groupinstall "$group" ; } -} - ############################## function fedora_install() { set -x set -e cache=/var/cache/lxc/fedora/$arch/$release + mkdir -p $cache - mkdir -p /var/lock/subsys/ ( - flock -n -x 200 || { echo "Cache repository is busy." ; return 1 ; } + flock --exclusive --timeout 60 200 || { echo "Cache repository is busy." ; return 1 ; } if [ ! -e "$cache/rootfs" ]; then echo "Getting cache download in $cache/rootfs ... " - fedora_download || { echo "Failed to download 'fedora base'"; return 1; } + fedora_download $cache || { echo "Failed to download 'fedora base'"; return 1; } else echo "Updating cache $cache/rootfs ..." if ! yum --installroot $cache/rootfs -y --nogpgcheck update ; then @@ -131,18 +122,21 @@ function fedora_install() { fi fi - echo "Copy $cache/rootfs to $lxc_root ... " + echo "Filling $lxc_root from $cache/rootfs ... " rsync -a $cache/rootfs/ $lxc_root/ return 0 - ) 200>/var/lock/subsys/lxc + ) 200> $cache/lock return $? } function fedora_download() { set -x + + cache=$1; shift + # check the mini fedora was not already downloaded INSTALL_ROOT=$cache/partial echo $INSTALL_ROOT @@ -166,7 +160,7 @@ function fedora_download() { sed -i "s/\$basearch/$arch/g; s/\$releasever/$release/g;" $f done - MIRROR_URL=http://mirror.onelab.eu/fedora/releases/$release/Everything/$arch/os + MIRROR_URL=$FEDORA_MIRROR_BASE/releases/$release/Everything/$arch/os 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" @@ -323,22 +317,22 @@ function fedora_configure_yum () { cat > $lxc_root/etc/yum.repos.d/building.repo <