Add vm-common.sh, remove vbridge.sh
[cmccabe-bin] / vm-common.sh
1 die() {
2     echo $@
3     exit 1
4 }
5
6 run_vm() {
7     ID=$1
8     shift
9     NARGS=$@
10     ADMIN_PORT=`expr 2232 + $ID`
11     MID_BYTE=`printf "%02X" $ID`
12     MAC_ADDR="F0:DE:$MID_BYTE:58:B2:69"
13     /sbin/modprobe kvm kvm_intel kvm_amd || die "modprobe failed"
14     echo "running qemu with ssh port $ADMIN_PORT, vnc ID $ID"
15     VNC_EFFECTIVE_PORT=`expr 5900 + $ID`
16     echo "see output with vncviewer 127.0.0.1:$VNC_EFFECTIVE_PORT"
17     qemu-kvm \
18         -daemonize \
19         -vga std \
20         -redir tcp:$ADMIN_PORT::22 \
21         -vnc 127.0.0.1:$ID \
22         -net nic,vlan=0,model=e1000 \
23         -net user,vlan=0,net=10.0.2.0/8,host=10.0.2.2,hostname=vm$ID \
24         -net nic,vlan=1,macaddr=$MAC_ADDR,model=e1000 \
25         -net socket,vlan=1,mcast=230.0.0.1:1234 \
26         $NARGS || die "qemu invocation failed."
27 }
28
29 # Tap stuff (currently unused):
30 #-net nic,vlan=0,macaddr=$MAC_ADDR,model=e1000 \
31 #-net tap,vlan=0,ifname=tap0,downscript=no,script=no \
32
33 # To add to /etc/hosts in VMs:
34 # 192.168.123.10  vm0.local vm0
35 # 192.168.123.11  vm1.local vm1
36 # 192.168.123.12  vm2.local vm2
37 # 192.168.123.13  vm3.local vm3
38 # 192.168.123.14  vm4.local vm4
39 # 192.168.123.15  vm5.local vm5
40 # 192.168.123.16  vm6.local vm6