49 lines
1.6 KiB
Bash
Executable file
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!"
|
|
|