X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fcreate-vm.sh;h=b52c351571e171262d189e9c13f5e844cd7949dc;hb=a8aa1baef6f4d1df60f44d1d542912acff913226;hp=43adf55f1e754b199284aa9f9150a238f12b2e25;hpb=cbdd7bd82ce2c690531d0bd556f9b738413d16f3;p=infrastructure.git diff --git a/scripts/create-vm.sh b/scripts/create-vm.sh index 43adf55..b52c351 100755 --- a/scripts/create-vm.sh +++ b/scripts/create-vm.sh @@ -5,29 +5,26 @@ DIRNAME=$(dirname $0) BUILD="${HOME}/git-build" -echo "Updating $BUILD" -cd $BUILD -git pull -cd - - LOGS=$HOME/machines [ -d $LOGS ] || { echo "Creating logs dir $LOGS" ; mkdir -p $LOGS; } DOMAIN=pl.sophia.inria.fr -DEFAULT_DISTRO=f20 +DEFAULT_DISTRO=f25 +DEFAULT_MEMORY=4096 CONFIRM= function usage () { message="$@" - echo "usage : $COMMAND [-c] [-f distro] [-i image] [ -m memory ] [ -n hostname ] container" + echo "usage : $COMMAND [-c] [-f distro] [-i image] [ -m memory ] [ -n hostname ] [-s] container" echo " -c : confirm, will show the command and prompt for confirmation " echo " -f : set distro, default is $DEFAULT_DISTRO" echo " -i : if specified, image is rsynced into /vservers" echo " warning: we cannot use an image already in /vservers..." - echo " -m : memory size in Mb - default is 512" + echo " -m : memory size in Mb - default is $DEFAULT_MEMORY" echo " -n : specify hostname if different from container" + echo " -s : do not start VM" echo " container : used for /vservers/foo as well as the lxc/libvirt name" echo "examples" echo " create-vm.sh sandbox" @@ -38,13 +35,15 @@ function usage () { exit 1 } -while getopts "cf:i:m:n:h" flag; do +# using HOSTNAME won't work as this is already set in environment +while getopts "cf:i:m:n:sh" flag; do case $flag in c) CONFIRM=true ;; f) DISTRO=$OPTARG ;; i) IMAGE=$OPTARG ;; m) MEMORY=$OPTARG ;; - n) HOSTNAME=$OPTARG ;; + n) VM_HOSTNAME=$OPTARG ;; + s) DO_NOT_START_VM=true ;; ?|h) usage "" ;; esac done @@ -58,17 +57,23 @@ container="$1" ; shift [ -d "$BUILD" ] || usage "Could not find directory $BUILD" [ -d /vservers/$container ] && usage "container $container already exists in /vservers" -# comopute all vars from args +echo "Updating $BUILD" +cd $BUILD +git pull +cd - + +# compute all vars from args [ -z "$DISTRO" ] && DISTRO="$DEFAULT_DISTRO" -[ -z "$HOSTNAME" ] && HOSTNAME="$container" -fqdn=$HOSTNAME.$DOMAIN +[ -z "$MEMORY" ] && MEMORY="$DEFAULT_MEMORY" +[ -z "$VM_HOSTNAME" ] && VM_HOSTNAME="$container" +fqdn=$VM_HOSTNAME.$DOMAIN # prepare initvm command initvm="$BUILD/lbuild-initvm.sh" -initvm="$initvm -f $DISTRO" +[ -z "$IMAGE" ] && initvm="$initvm -f $DISTRO" || initvm="$initvm -i $IMAGE" initvm="$initvm -n $fqdn" -[ -n "$IMAGE" ] && initvm="$initvm -i $IMAGE" -[ -n "$MEMORY" ] $$ initvm="$initvm -m $MEMORY" +[ -n "$DO_NOT_START_VM" ] && initvm="$initvm -s" +[ -n "$MEMORY" ] && initvm="$initvm -m $MEMORY" initvm="$initvm $container" if [ -n "$CONFIRM" ] ; then