other distros move to nodemanager that has a single specfile for all packages
[build.git] / lbuild-initvm.sh
index 39d6518..df78c11 100755 (executable)
@@ -33,6 +33,7 @@ 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"
 
@@ -70,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 
 }
@@ -321,7 +322,7 @@ baseurl=$FEDORA_MIRROR_BASE/releases/\$releasever/Everything/\$basearch/os/
 enabled=1
 metadata_expire=7d
 gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-\$releasever-\$basearch
+gpgkey=$FEDORA_MIRROR_KEYS/RPM-GPG-KEY-fedora-$release-primary
 
 [updates]
 name=Fedora \$releasever - \$basearch - Updates
@@ -329,7 +330,7 @@ baseurl=$FEDORA_MIRROR_BASE/updates/\$releasever/\$basearch/
 enabled=1
 metadata_expire=7d
 gpgcheck=1
-gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-\$releasever-\$basearch
+gpgkey=$FEDORA_MIRROR_KEYS/RPM-GPG-KEY-fedora-$release-primary
 EOF
 
     # for using vtest-init-lxc.sh as a general-purpose lxc creation wrapper
@@ -362,7 +363,7 @@ function debian_mirror () {
     case $fcdistro in
        squeeze|wheezy|jessie) 
            echo http://ftp2.fr.debian.org/debian/ ;;
-       oneiric|precise|quantal|raring|saucy) 
+       oneiric|precise|quantal|raring|saucy|trusty
            echo http://mir1.ovh.net/ubuntu/ubuntu/ ;;
        *) echo unknown distro $fcdistro; exit 1;;
     esac
@@ -632,21 +633,25 @@ function devel_or_vtest_tools () {
 function post_install () {
     lxc=$1; shift 
     personality=$1; shift
+    # setup localtime from the host
+    cp /etc/localtime $lxc_root/etc/localtime
     if [ -n "$BUILD_MODE" ] ; then
        post_install_build $lxc $personality
-       virsh -c lxc:/// start $lxc
-       # manually run dhclient in guest - somehow this network won't start on its own
-       virsh -c lxc:/// lxc-enter-namespace $lxc /bin/bash -c "dhclient $VIF_GUEST"
+       if [ -n "$START_VM" ] ; then
+           virsh -c lxc:/// start $lxc
+           # manually run dhclient in guest - somehow this network won't start on its own
+            virsh -c lxc:/// lxc-enter-namespace $lxc /bin/bash -c "dhclient $VIF_GUEST"
+       fi
     else
        post_install_myplc $lxc $personality
-       virsh -c lxc:/// start $lxc
-# it sounds like we don't need ssh per se any more
-# it still makes sense to wait for network readiness though
-# some day maybe...
-       wait_for_ssh $lxc
+       if [ -n "$START_VM" ] ; then
+           virsh -c lxc:/// start $lxc
+           # it sounds like we don't need ssh per se any more
+           # it still makes sense to wait for network readiness though
+           # some day maybe...
+           wait_for_ssh $lxc
+       fi
     fi
-    # setup localtime from the host
-    cp /etc/localtime $lxc_root/etc/localtime
 }
 
 function post_install_build () {
@@ -749,6 +754,7 @@ function usage () {
     echo "    by default we use devel.pkgs (build mode) or runtime.pkgs (test mode)"
     echo " -i image - the location of the rootfs"
     echo " -m memory - the amount of allocated memory in MB - defaults to $DEFAULT_MEMORY MB"
+    echo " -s do not start VM"
     echo " -v be verbose"
     exit 1
 }
@@ -764,7 +770,8 @@ function main () {
           exit 1
     fi
 
-    while getopts "n:f:d:p:r:P:i:m:v" opt ; do
+    START_VM=true
+    while getopts "n:f:d:p:r:P:i:m:sv" opt ; do
        case $opt in
            n) GUEST_HOSTNAME=$OPTARG;;
            f) fcdistro=$OPTARG;;
@@ -774,6 +781,7 @@ function main () {
            P) PREINSTALLED=$OPTARG;;
             i) IMAGE=$OPTARG;;
             m) MEMORY=$OPTARG;;
+           s) START_VM= ;;
            v) VERBOSE=true; set -x;;
            *) usage ;;
        esac