blob: 3024f813314b3bc4a7bb71599ea1ced1eda0e2be [file] [log] [blame]
Brian O'Connor5abe3db2014-08-05 02:08:34 -07001#!/bin/bash
Brian O'Connor37f0cc72014-06-06 20:03:05 -07002# vm-setup.sh
3#
4# This script installs ONOS dependencies and installs a desktop environment on a Miniet VM.
5
Brian O'Connor4c074f42014-08-12 13:39:34 -07006USER=mininet
7USER_HOME=/home/${USER}
Brian O'Connor37f0cc72014-06-06 20:03:05 -07008
Brian O'Connor37f0cc72014-06-06 20:03:05 -07009sudo apt-get update
10
Brian O'Connor3ca84022014-08-11 19:46:54 -070011# -------------- Bufferbloat Install ----------
Brian O'Connor10d941e2014-06-12 19:55:09 -070012
Brian O'Connor3ca84022014-08-11 19:46:54 -070013cd ~
14git clone https://bitbucket.org/huangty/cs144_bufferbloat.git
15sudo apt-get -y install screen
16sudo apt-get -y install python-matplotlib
Brian O'Connor10d941e2014-06-12 19:55:09 -070017
Brian O'Connor3ca84022014-08-11 19:46:54 -070018# -------------- BGP-attack Install -----------
Brian O'Connor10d941e2014-06-12 19:55:09 -070019
Brian O'Connor3ca84022014-08-11 19:46:54 -070020git clone https://bitbucket.org/jvimal/bgp.git
21cd bgp
22./install.sh
23cd ~
24
25# ------------- DHCP demo Install ------------
26
27git clone https://bitbucket.org/lantz/cs144-dhcp.git
28cd cs144-dhcp
29# TODO fix this
30#sudo ./dhcp.py --check-required
31cd ~
Brian O'Connor37f0cc72014-06-06 20:03:05 -070032
Brian O'Connor24512552014-08-11 23:22:14 -070033# -------------- Offline content -------------
34sudo apt-get install -y python-pip
35sudo pip install grip
36
37git clone https://github.com/mininet/mininet.wiki.git
38cd mininet.wiki
39grip --gfm --export Bufferbloat.md
40grip --gfm --export Dhcp-masquerade-attack.md
41
Brian O'Connor37f0cc72014-06-06 20:03:05 -070042# -------------- Setup Desktop ----------------
43sudo apt-get install -y xorg lxde
44
45#TODO: add backgrounds folder
46#TODO: change background
Brian O'Connor4c074f42014-08-12 13:39:34 -070047# Remove wallpaper, change background color
Brian O'Connor37f0cc72014-06-06 20:03:05 -070048sudo sed -i 's/wallpaper_mode=1/wallpaper_mode=0/g' /usr/share/lxde/pcmanfm/LXDE.conf
49sudo sed -i 's/desktop_bg=#000000/desktop_bg=#104187/g' /usr/share/lxde/pcmanfm/LXDE.conf
Brian O'Connor37f0cc72014-06-06 20:03:05 -070050
Brian O'Connor4c074f42014-08-12 13:39:34 -070051# Disable screensaver
52##sudo sed -i '/screensaver/d' /etc/xdg/lxsession/LXDE/autostart
53cat > ${USER_HOME}/.xsessionrc << EOF
54# disable screensaver
55xset s off
56# disable dpms (standby)
57xset -dpms
58EOF
59
60# Change LXTerminal default colors
61sudo sed -i 's/bgcolor=#000000000000/bgcolor=#ffffffffffff/g' ${USER_HOME}/.config/lxterminal/lxterminal.conf
62sudo sed -i 's/fgcolor=#aaaaaaaaaaaa/fgcolor=#000000000000/g' ${USER_HOME}/.config/lxterminal/lxterminal.conf
63
64DESKTOP=${USER_HOME}/Desktop
65OFFLINE="${DESKTOP}/Offline Exercises"
Brian O'Connor37f0cc72014-06-06 20:03:05 -070066
67mkdir -p ${DESKTOP}
Brian O'Connor4c074f42014-08-12 13:39:34 -070068mkdir -p "${OFFLINE}"
Brian O'Connor37f0cc72014-06-06 20:03:05 -070069
70cat > ${DESKTOP}/Terminal << EOF
71[Desktop Entry]
72Encoding=UTF-8
73Type=Application
74Name=Terminal
75Name[en_US]=Terminal
76Icon=konsole
77Exec=/usr/bin/x-terminal-emulator
78Comment[en_US]=
79EOF
80
Brian O'Connor4c074f42014-08-12 13:39:34 -070081cat > ${DESKTOP}/Mininet << EOF
Brian O'Connor37f0cc72014-06-06 20:03:05 -070082[Desktop Entry]
83Encoding=UTF-8
84Type=Application
Brian O'Connor4c074f42014-08-12 13:39:34 -070085Name=Teaching with Mininet
86Name[en_US]=Teaching with Mininet
Brian O'Connor37f0cc72014-06-06 20:03:05 -070087Icon=internet-web-browser
Brian O'Connor4c074f42014-08-12 13:39:34 -070088Exec=/usr/bin/chromium-browser http://teaching.mininet.org
Brian O'Connor37f0cc72014-06-06 20:03:05 -070089Comment[en_US]=
90EOF
91
92cat > ${DESKTOP}/Wireshark << EOF
93[Desktop Entry]
94Encoding=UTF-8
95Type=Application
96Name=Wireshark
97Name[en_US]=Wireshark
98Icon=wireshark
99Exec=/usr/bin/wireshark
100Comment[en_US]=
101EOF
102
Brian O'Connor4c074f42014-08-12 13:39:34 -0700103cat > "${OFFLINE}/Bufferbloat" << EOF
104[Desktop Entry]
105Encoding=UTF-8
106Type=Application
107Name=Bufferbloat
108Name[en_US]=Bufferbloat
109Icon=internet-web-browser
110Exec=/usr/bin/chromium-browser file:///home/mininet/mininet.wiki/Bufferbloat.html
111Comment[en_US]=
112EOF
113
Brian O'Connor37f0cc72014-06-06 20:03:05 -0700114# ------------- Install Other Tools -------------
115sudo apt-get install -y wireshark
116# Enable root-less wireshark and add mininet
117echo "Enabling wireshark group"
118echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
119sudo dpkg-reconfigure -f noninteractive wireshark-common
120sudo usermod -a -G wireshark mininet
121
Brian O'Connor4c074f42014-08-12 13:39:34 -0700122echo "Installing VirtualBox Guest Additions"
123sudo apt-get install -y virtualbox-guest-x11
124
Brian O'Connor40a238d2014-08-11 20:30:16 -0700125# ------------- Zero Unused Blocks -------------
126#TODO investigate zerofree
127echo "Zeroing unused blocks"
Brian O'Connor4c074f42014-08-12 13:39:34 -0700128sync
Brian O'Connor40a238d2014-08-11 20:30:16 -0700129dd if=/dev/zero of=tmp-zeros
130sync
131rm tmp-zeros
Brian O'Connor4c074f42014-08-12 13:39:34 -0700132sync