#!/bin/bash function create_disk() { echo "Creating new virtual disk image, this will take some time..." # cp is slow, use tar instead cat /dev/null > /xen/images/${HOSTNAME}.img for x in `seq -w 00 19` do echo "Part $x" # cat /xen/template/windows-vps-template.img.$x >> /xen/images/${HOSTNAME}.img done #cp -f /usr/src/windows-vps-template.img /xen/images/${HOSTNAME}.img & #pid=`echo $!` #sleep 3 #tar --to-stdout -xf /usr/src/windows-vps-template.img.tar > /xen/images/${HOSTNAME}.img & #rsync -Lav --progress /usr/src/windows-vps-template.img /xen/images/${HOSTNAME}.img #while [ -e /proc/$pid ] #do # targetsize=`stat -t /xen/images/${HOSTNAME}.img | awk {'print $2'}` # percent=`echo "scale=3; (${targetsize}/20971521024) * 100" | bc`% # echo $percent # sleep 3 #done #echo "Copy Complete." } function get_data() { echo -n "What is the host name? " read HOSTNAME } if [ -z "$1" ]; then get_data else HOSTNAME=$1 fi create_disk echo "Creating config file..." cat << EOF > /etc/xen/auto/$HOSTNAME.cfg import os, re arch = os.uname()[4] if re.search('64', arch): arch_libdir = 'lib64' else: arch_libdir = 'lib' kernel = '/usr/lib/xen/boot/hvmloader' builder = 'hvm' memory = 256 name = "$HOSTNAME" vif = [ 'type=ioemu, bridge=xenbr0' ] disk = [ 'file:/xen/images/$HOSTNAME.img,ioemu:hda,w' ] device_model = '/usr/' + arch_libdir + '/xen/bin/qemu-dm' boot = "c" sdl = 0 vnc = 1 vncviewer = 0 ne2000 = 1 usb = 1 usbdevice = 'tablet' EOF echo $HOSTNAME >> /etc/backup/backup.list echo "Starting account, please wait." count="5" min="0" while [ $count != $min ]; do count=`expr $count - 1` echo -n "$count..." sleep 1 done xm create /etc/xen/auto/$HOSTNAME.cfg