vmtools/makevm
cecilkorik 7b51226796 initial import
--HG--
branch : vmtools
2011-03-05 08:34:41 +00:00

49 lines
1.6 KiB
Bash
Executable file

#!/bin/bash
usage() {
cat << EEOF
Usage:
makevm <newvm> [clonevm]
EEOF
}
if [ ! $1 ]; then
usage
exit 1
fi
NEWVM=$1
CLONEVM=$2
SYSDISK=/dev/vg0/$NEWVM
SYSDISKFILE=$VBOX_USER_HOME/Disks/$NEWVM/$NEWVM.vmdk
CLONEDISK=/dev/vg0/$CLONEVM
CLONEDISKFILE=$VBOX_USER_HOME/Disks/$CLONEVM/$CLONEVM.vmdk
NEWVNC=`python nextvnc.py`
if [ $NEWVNC -lt 5900 ]; then
echo "Python error $NEWVNC"
exit 99
fi
NEWMAC_LASTPART=`python -c "print '%.2d' % ($(($NEWVNC - ($NEWVNC / 100 * 100))),)"`
NEWMAC=aa:aa:aa:00:$(($NEWVNC / 100)):$NEWMAC_LASTPART
VBOXMAC=`echo $NEWMAC | sed -e 's/://g'`
if [ $CLONEVM ]; then
#lvcreate -L 10G -n $NEWVM vg0
vboxmanage internalcommands createrawvmdk -filename $SYSDISKFILE -rawdisk $SYSDISK || exit 250
vboxmanage clonehd $CLONEDISKFILE $SYSDISKFILE --existing --remember || exit 250
else
lvcreate -L 10G -n $NEWVM vg0 || exit 250
vboxmanage internalcommands createrawvmdk -filename $SYSDISKFILE -rawdisk $SYSDISK || exit 250
#vboxmanage createhd --filename $SYSDISK --size 10000 --variant Fixed --remember || exit 250
fi
vboxmanage createvm --name $NEWVM --ostype Ubuntu_64 --register || exit 250
vboxmanage modifyvm $NEWVM --memory 512 --nic1 bridged --nictype1 Am79C973 --nicspeed1 1000000 --bridgeadapter1 eth0 --macaddress1 $VBOXMAC --boot1 disk --boot2 dvd --boot3 net || exit 250
vboxmanage storagectl $NEWVM --name sata0 --add sata --sataportcount 30 || exit 250
vboxmanage storageattach $NEWVM --storagectl sata0 --port 1 --device 0 --type hdd --medium $SYSDISKFILE || exit 250
echo $NEWVM $NEWMAC $NEWVNC 0 >> /srv/vmlist
echo "Done!"
echo "Machine '$NEWVM' with MAC '$NEWMAC' on port '$NEWVNC' created successfully!"