X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=scripts%2Fcreate-vm.sh;fp=scripts%2Fcreate-vm.sh;h=0000000000000000000000000000000000000000;hb=a3b006bd5bc9fcb963f520f2e73a4bb09b9752f9;hp=a3d0ae275f5528fdabf99d5d2351167087d1ac3a;hpb=b4194e90d40b456cc4e7fc32e4246b57b5c60467;p=infrastructure.git diff --git a/scripts/create-vm.sh b/scripts/create-vm.sh deleted file mode 100755 index a3d0ae2..0000000 --- a/scripts/create-vm.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/bin/bash - -COMMAND=$(basename $0) -DIRNAME=$(dirname $0) - -BUILD="${HOME}/git-build" - -LOGS=$HOME/machines - -[ -d $LOGS ] || { echo "Creating logs dir $LOGS" ; mkdir -p $LOGS; } - -DOMAIN=pl.sophia.inria.fr - -DEFAULT_DISTRO=f29 -DEFAULT_MEMORY=4096 - -CONFIRM= -function usage () { - message="$@" - 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 $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" - echo " Builds a brand new $DEFAULT_DISTRO 64bits VM named sandbox with hostname sandbox.pl.sophia.inria.fr" - echo " create-vm.sh -i /vservers/migrating/testmaster -n testmaster testmaster.f14" - echo " Create a container named testmaster.f14 from the specified image with hostname testmaster.pl.sophia.inria.fr" - [ -n "$message" ] && echo $message - exit 1 -} - -# 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) VM_HOSTNAME=$OPTARG ;; - s) DO_NOT_START_VM=true ;; - ?|h) usage "" ;; - esac -done -# parse args -shift $((OPTIND-1)) -[[ -z "$@" ]] && usage "no hostname provided" -container="$1" ; shift -[[ -n "$@" ]] && usage "extra arguments" "$@" "(container=$container)" - -# sanity checks -[ -d "$BUILD" ] || usage "Could not find directory $BUILD" -[ -d /vservers/$container ] && usage "container $container already exists in /vservers" - -echo "Updating $BUILD" -cd $BUILD -git pull -cd - - -# compute all vars from args -[ -z "$DISTRO" ] && DISTRO="$DEFAULT_DISTRO" -[ -z "$MEMORY" ] && MEMORY="$DEFAULT_MEMORY" -[ -z "$VM_HOSTNAME" ] && VM_HOSTNAME="$container" -fqdn=$VM_HOSTNAME.$DOMAIN - -# prepare initvm command -initvm="$BUILD/lbuild-initvm.sh" -[ -z "$IMAGE" ] && initvm="$initvm -f $DISTRO" || initvm="$initvm -i $IMAGE" -initvm="$initvm -n $fqdn" -[ -n "$DO_NOT_START_VM" ] && initvm="$initvm -s" -[ -n "$MEMORY" ] && initvm="$initvm -m $MEMORY" -initvm="$initvm $container" - -if [ -n "$CONFIRM" ] ; then - echo -n "Run $initvm OK ? " - read answer ; case $answer in [nN]*) exit 1 ;; esac -fi - -echo "Running $initvm" -echo "Storing output in $LOGS/$container.log" -$initvm >& $LOGS/$container.log -