# Xen domain configuration file for scripts.mit.edu virtualized web servers
#
# usage, e.g.:
-# xm create scripts-server machine_name=bees-knees mac5=10
+# xm create scripts-server machine_name=bees-knees
+# xm create scripts-server machine_name=cats-whiskers
# name is the name of the server (as used in the LV volumes)
# mac5 is the fifth octet of the MAC address: ac:de:48:00:xx:01
-# set install=1 if you want to run a Fedora install
+# set install=fcX if you want to run a Fedora install, where X
+# is the version of Fedora to install
+
+vm_host = 0
+vm_cpus = 1
+vm_mem = 2
+vm_mac5 = 3
+machines = { 'bees-knees' : ['david-letterman', 2, 6144, 10],
+ 'cats-whiskers' : ['david-letterman', 2, 6144, 20],
+ 'not-backward' : ['david-letterman', 2, 2560, 30],
+ 'busy-beaver' : ['conan-obrien', 2, 4096, 40],
+ 'pancake-bunny' : ['conan-obrien', 2, 4096, 50],
+ 'whole-enchilada': ['jay-leno', 1, 2048, 60],
+ 'real-mccoy' : ['jay-leno', 2, 4096, 70],
+ 'not-forward' : ['jay-leno', 2, 512, 80],
+ 'old-faithful' : ['jay-leno', 2, 1024, 90],
+ }
+vm = machines[machine_name]
+
+mac5 = vm[vm_mac5]
if 'install' in locals():
- # Get these files from a Fedora mirror, in
- # fedora/linux/releases/9/Fedora/x86_64/os/images/xen/
- kernel = "/root/fc9-install/vmlinuz"
- ramdisk = "/root/fc9-install/initrd.img"
+ # Get these files from a Fedora mirror, from a path like
+ # pub/fedora/linux/releases/test/11-Preview/Fedora/x86_64/os/isolinux/
+ kernel = "/root/%s-install/vmlinuz" % install
+ ramdisk = "/root/%s-install/initrd.img" % install
+ extra = "selinux=0"
+elif 'type' in locals() and type == 'hvm':
+ kernel = "/usr/lib/xen/boot/hvmloader"
+ builder = "hvm"
+ vnc = 1
+ vncpassword = "foobar"
else:
# Fedora installs GRUB.
bootloader = "/usr/bin/pygrub"
-memory = 1024
-maxmem = 8192
+vcpus = vm[vm_cpus]
+if 'memory' not in locals(): memory = vm[vm_mem]
+maxmem = 16384
name = machine_name
-vg = "not-forward"
+vg = vm[vm_host]
disk = [i % (vg, name) for i in ['phy:/dev/%s/%s-root,hda,w',
'phy:/dev/%s/%s-swap,hdb,w']]
vif = [i % mac5 for i in ['bridge=eth0, mac=ac:de:48:00:%s:01',
'bridge=eth1, mac=ac:de:48:00:%s:02']]
+
+if 'builder' not in locals() or builder != "hvm":
+ # https://bugzilla.redhat.com/show_bug.cgi?id=466681
+ # pygrub uses cached and eventually outdated grub.conf, kernel and initrd
+ file('/proc/sys/vm/drop_caches', 'w').write('1')