====== Kopiluwak: The Build Machine ====== ===== Hardware ====== * HP DL145 G3 * Firmware based on coreboot [[http://www.coreboot.org/HP_DL145_G3|Coreboot page on HP DL145 g3]] * original bios did not support hardware virtualisation * bootloader is embedded in the firmware and is similar to grub. Config file in /boot/filo/menu.lst . * Dual Opteron 2218HE * 8GB reg ecc ram (kingston) * dual 200GB sata drives (software raid 1) ===== Idea ====== The machine hosts virtual machines. Other than that no functionality runs on the machine. ===== Host ===== ==== Software ==== ^ software ^ version ^ website ^ | Lunar Linux | 1.6.4 x86_64 | [[http://lunar-linux.org]] | | Linux | 2.6.30.5 | | | kvm | 88 | [[http://kvm.qumranet.com]] | | vde | 2.2.2 | [[http://vde.sourceforge.net]] | | lvm2 | 2.02.45 | [[http://sources.redhat.com/lvm2]] | | tunctl | 1.5 | [[http://tunctl.sourceforge.net]] | ==== Configuration ==== === Storage === * root and boot | /dev/md1 | / | ext3 | | /dev/md0 | /boot | ext3 | * var, home, luns for vm's VolumeGroup: vg on /dev/md2 | /dev/mapper/vg-home | /home | ext4 | | /dev/mapper/vg-var | /var | ext4 | === Network === * eth0 - bridged to br0, ip assigned with dhcp * br0: run script in screen #!/bin/bash if [ $TERM == screen ]; then /usr/bin/killall dhcpcd /bin/rm -fr /var/db/dhcpcd* /sbin/modprobe tun /usr/sbin/tunctl -t tap0 /usr/sbin/brctl addbr br0 /usr/sbin/brctl addif br0 eth0 /usr/sbin/brctl addif br0 tap0 /sbin/ifconfig eth0 0.0.0.0 promisc up #still need to test if promisc is needed /sbin/ifconfig tap0 0.0.0.0 promisc up #still need to test if promisc is needed /sbin/ifconfig br0 up /usr/sbin/dhcpcd br0 echo "Sleep for 5 minutes, Ctrl ^ C to stop, will revert changes if you don't" sleep 5m echo "revert changes" /sbin/ifconfig br0 down /usr/bin/killall dhcpcd /bin/rm -fr /var/db/dhcpcd* /usr/sbin/brctl delif br0 eth0 /usr/sbin/brctl delif br0 tap0 /usr/sbin/brctl delbr br0 /usr/sbin/tunctl -d tap0 /sbin/ifconfig eth0 up /usr/sbin/dhcpcd eth0 echo "Sleep for 5 minutes, Ctrl ^ C to stop, will revert changes if you don't" sleep 5m echo "reboot" /sbin/reboot else echo "USE SCREEN"; fi * vde_switch: Switch that the virtual machines (buildslaves) will use to communicate with the buildmaster. vde_switch -tap tap1 -daemon; ifconfig tap1 10.0.0.1; echo "1" > /proc/sys/net/ipv4/ip_forward; iptables -t nat -A POSTROUTING -o br0 -j MASQUERADE ===== Hosted Virtual Machines ===== ==== Guest 1: buildbot.xfce.org ==== === Configuration === == Start the machine == #!/bin/bash # This script starts the buildbot vdeq qemu-system-x86_64 -vnc :1 -hda /dev/vg/BuildBot -m 512 -net nic,vlan=0 -net tap,vlan=0,ifname=tap0,script=no -net vde,vlan=1 -net nic,vlan=1 -daemonize == network == * eth0: fixed ip - external ip (dns: buildbot.xfce.org) * eth1: internal nic connected to the virtual switch (ip: 10.0.0.2) == software == * buildbot 0.7.10p1 == config buildbot == * create the user buildmaster * Create instance of buildbot: buildbot create-master /home/buildmaster/xfce * start the buildbot instance: buildbot start /home/buildmaster/xfce * configure the buildbot instance: edit master.cfg * validate the edits: buildbot checkconfig master.cfg * reread the config in the current instance: buildbot reconfig /home/buildmaster/xfce * master.cfg: ==== Guest 2: buildslave ==== lunar ip 10.0.0.3 vdeq qemu-system-x86_64 -vnc :2 -hda /dev/vg/lunar -m 512 -net vde,vlan=1 -net nic,vlan=1 -daemonize