[Fai-commit] r6773 - trunk/dev-utils

Thomas Lange lange at alioth.debian.org
Tue Oct 25 14:06:59 UTC 2011


Author: lange
Date: 2011-10-25 14:06:59 +0000 (Tue, 25 Oct 2011)
New Revision: 6773

Added:
   trunk/dev-utils/fai-kvm
Log:
add utility for starting kvm hosts for testing FAI software


Added: trunk/dev-utils/fai-kvm
===================================================================
--- trunk/dev-utils/fai-kvm	                        (rev 0)
+++ trunk/dev-utils/fai-kvm	2011-10-25 14:06:59 UTC (rev 6773)
@@ -0,0 +1,101 @@
+#! /bin/bash
+
+# fai-kvm, start kvm host for testing FAI software
+#
+# Author:    Thomas Lange, Uni Koeln, 2011
+# License:   GPL v2 or any later version
+
+fix="-vga std -k us"  # if loading cirrusfb (via pcimodules and modprobe cirrusfb) causes errors in kvm
+# without it centos initrd is not created properly and results in kernel panic
+
+
+user=1
+size=5   # default size of the disk image
+ram=2000
+disks=1
+cdimage=/files/scratch/fai-cd.iso # default name for CD image
+diskdir=/dev/shm     # directory where the disk images will be created
+
+# - - - - - - - - - - - - - - - - - - - - - - - - -
+boot_pxe() {
+
+  # PXE boot
+  set -x
+  kvm $gopt -boot order=nc $net $disk
+}
+# - - - - - - - - - - - - - - - - - - - - - - - - -
+boot_faicd() {
+
+  [ -n "$1" ] && cdimage=$1
+  # boot fai-cd
+  set -x
+  kvm $gopt $net $disk -cdrom $cdimage
+}
+# - - - - - - - - - - - - - - - - - - - - - - - - -
+die() {
+  echo "$2" 1>&2
+  exit $1
+}
+
+# - - - - - - - - - - - - - - - - - - - - - - - - -
+usage() {
+
+  cat <<EOF
+
+ fai-kvm [options] pxe   # start a host booting with PXE from NIC
+ fai-kvm [options] faicd [imagename] # start a host booting from a ISO image
+
+ -n          create a new empty disk image, which is used as a local disk
+ -s <size>   size of the local disk (GB, defaults to 5GB)
+ -d <num>    number of local disks (default is one)
+ -m <mem>    RAM size (MB, defaults to 2000MB)
+ -u <num>    number of the user (so multiple users can call this script)
+
+EOF
+  exit 0
+}
+# - - - - - - - - - - - - - - - - - - - - - - - - -
+
+while getopts "hnu:s:m:d:" opt ; do
+    case "$opt" in
+        n) newdisk=1    ;;
+	u) user=$OPTARG ;;
+	m) ram=$OPTARG ;;
+	s) size=$OPTARG ;;
+	d) disks=$OPTARG ;;
+        h) usage;;
+        ?) die 1 "Unknown option";;
+    esac
+done
+shift $(($OPTIND - 1))
+
+hex=$(echo $user 16o p | dc)
+diskfile=$diskdir/faitest-disk-$user
+mac=52:54:00:11:23:$hex
+
+net="-net nic,macaddr=$mac,model=virtio -net tap,ifname=tap$user,script=no,downscript=no"
+disk=""
+for i in `seq 1 $disks` ; do
+  disk="$disk -drive file=$diskfile-$i.qcow2,if=virtio,index=$i"
+  if [ $i -eq 1 ] ; then
+    disk="$disk,boot=on"
+  fi
+done
+gopt="$fix -m $ram -smp 2 -name FAI-test"
+
+# create new disk image
+if [ X$newdisk = X1 ]; then
+  for i in `seq 1 $disks` ; do
+    rm -f $diskfile-$i.qcow2
+    qemu-img create -f qcow2 -o preallocation=metadata $diskfile-$i.qcow2 ${size}G
+  done
+fi
+
+case "$1" in
+    pxe) boot_pxe ;;
+    faicd) boot_faicd $2 ;;
+    *)
+	echo "Missing argument."
+	usage
+	;;
+esac


Property changes on: trunk/dev-utils/fai-kvm
___________________________________________________________________
Added: svn:executable
   + *




More information about the Fai-commit mailing list