All pastes #54573 Raw Edit

ccd

public text v1 · immutable
#54573 ·published 2006-05-09 19:01 UTC
rendered paste body
#!/bin/sh
vmname="${1}"
disksize="${2}"
ram="${3}"
mac=`/cfg/generate_mac.sh`
installcd="/data/isofiles/livecd.livecd.iso"
test -z "${3}" && echo "/cfg/make_qemu_server.sh vmname disksize(GB) ramsize(MB)" && fexit $LINENO


function fexit {
        echo "EXIT - fexit() in $0 called with $*"
        exit $1
}




ls /data/qemu/"${vmname}" > /dev/null 2>&1 && echo "Directory /data/qemu/"${vmname}" allready exists" && fexit $LINENO
mkdir -p /data/qemu/"${vmname}"
/cfg/make_qemu_disk.sh /data/qemu/"${vmname}"/"${vmname}".qcow "${disksize}"G

echo "#!/bin/sh
vmname=\"${vmname}\"
disksize=\"${disksize}\"
ram=\"${ram}\"
mac=\"${mac}\"
installcd=\"${installcd}\"
" > /data/qemu/"${vmname}".sh

echo '
function fexit {
        echo "EXIT - fexit() called with $*"
        exit $1
}


test "$1" = "nocdrom" && cdstring="-boot c" || cdstring="-cdrom $installcd -boot d"
echo "loading kqemu"
sudo /cfg/modprobe_kqemu.sh || fexit $LINENO
echo "checking for ${vmname}.pid"
test -e /data/qemu/"${vmname}".pid && echo "/data/qemu/"${vmname}".pid found, checking ps" && ps > /dev/null `cat /data/qemu/"${vmname}".pid` && echo "Qemu is allready running" && fexit $LINENO || rm -f /data/qemu/"${vmname}".pid
echo "starting qemu"
test "$1" = "nocdrom" && echo "starting without boot CD"
echo "starting sudo qemu -m "${ram}" $cdstring -net nic,vlan=0,macaddr="${mac}" -net tap,vlan=0 -hda /data/qemu/"${vmname}"/"${vmname}".qcow -hdb /data/qemu/template.qcow > /data/qemu/"${vmname}".log 2>&1 &"
               { sudo qemu -m "${ram}" $cdstring -net nic,vlan=0,macaddr="${mac}" -net tap,vlan=0 -hda /data/qemu/"${vmname}"/"${vmname}".qcow -hdb /data/qemu/template.qcow > /data/qemu/"${vmname}".log 2>&1 & } || fexit $LINENO
echo "$!" > /data/qemu/"${vmname}".pid
echo -n "qemu pid="
cat /data/qemu/"${vmname}".pid
echo "tailing log file /data/qemu/${vmname}.log"
tail -f /data/qemu/"${vmname}".log &
echo "sleeping 4"
sleep 4
echo "getting interface from logfile"
dev=`cat /data/qemu/"${vmname}".log | grep interface | cut -d "=" -f 2`
echo "dev=${dev}"
test -z "$dev" && sudo kill -n 15 `cat /data/qemu/"${vmname}".pid`
test -z "$dev" && echo "no net device allocated, qemu killed, exiting 1" && fexit $LINENO
kqemucheck=`cat /data/qemu/"${vmname}".log | grep kqemu`
#echo "kqemucheck=$kqemucheck"
echo "qemu pid"
cat /data/qemu/"${vmname}".pid
test ! -z "$kqemucheck" && { echo "kqemu not running, killing qemu, exiting 1" && sudo kill -n 9 `cat /data/qemu/"${vmname}".pid` ; fexit $LINENO ; }
devnum=`echo "${dev}" | tr -d '[:alpha:]'`
echo "devnum=${devnum}"
sudo /cfg/setup_interface.sh "${dev}" 10."${devnum}".3.254:255.255.255.0:10."${devnum}".3.255
'  >> /data/qemu/"${vmname}".sh

chmod +x /data/qemu/"${vmname}".sh
ls /data/qemu/"${vmname}".sh && echo "server created, exiting 0" && exit 0