blob: 3024f813314b3bc4a7bb71599ea1ced1eda0e2be [file] [log] [blame]
#!/bin/bash
# vm-setup.sh
#
# This script installs ONOS dependencies and installs a desktop environment on a Miniet VM.
USER=mininet
USER_HOME=/home/${USER}
sudo apt-get update
# -------------- Bufferbloat Install ----------
cd ~
git clone https://bitbucket.org/huangty/cs144_bufferbloat.git
sudo apt-get -y install screen
sudo apt-get -y install python-matplotlib
# -------------- BGP-attack Install -----------
git clone https://bitbucket.org/jvimal/bgp.git
cd bgp
./install.sh
cd ~
# ------------- DHCP demo Install ------------
git clone https://bitbucket.org/lantz/cs144-dhcp.git
cd cs144-dhcp
# TODO fix this
#sudo ./dhcp.py --check-required
cd ~
# -------------- Offline content -------------
sudo apt-get install -y python-pip
sudo pip install grip
git clone https://github.com/mininet/mininet.wiki.git
cd mininet.wiki
grip --gfm --export Bufferbloat.md
grip --gfm --export Dhcp-masquerade-attack.md
# -------------- Setup Desktop ----------------
sudo apt-get install -y xorg lxde
#TODO: add backgrounds folder
#TODO: change background
# Remove wallpaper, change background color
sudo sed -i 's/wallpaper_mode=1/wallpaper_mode=0/g' /usr/share/lxde/pcmanfm/LXDE.conf
sudo sed -i 's/desktop_bg=#000000/desktop_bg=#104187/g' /usr/share/lxde/pcmanfm/LXDE.conf
# Disable screensaver
##sudo sed -i '/screensaver/d' /etc/xdg/lxsession/LXDE/autostart
cat > ${USER_HOME}/.xsessionrc << EOF
# disable screensaver
xset s off
# disable dpms (standby)
xset -dpms
EOF
# Change LXTerminal default colors
sudo sed -i 's/bgcolor=#000000000000/bgcolor=#ffffffffffff/g' ${USER_HOME}/.config/lxterminal/lxterminal.conf
sudo sed -i 's/fgcolor=#aaaaaaaaaaaa/fgcolor=#000000000000/g' ${USER_HOME}/.config/lxterminal/lxterminal.conf
DESKTOP=${USER_HOME}/Desktop
OFFLINE="${DESKTOP}/Offline Exercises"
mkdir -p ${DESKTOP}
mkdir -p "${OFFLINE}"
cat > ${DESKTOP}/Terminal << EOF
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Terminal
Name[en_US]=Terminal
Icon=konsole
Exec=/usr/bin/x-terminal-emulator
Comment[en_US]=
EOF
cat > ${DESKTOP}/Mininet << EOF
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Teaching with Mininet
Name[en_US]=Teaching with Mininet
Icon=internet-web-browser
Exec=/usr/bin/chromium-browser http://teaching.mininet.org
Comment[en_US]=
EOF
cat > ${DESKTOP}/Wireshark << EOF
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Wireshark
Name[en_US]=Wireshark
Icon=wireshark
Exec=/usr/bin/wireshark
Comment[en_US]=
EOF
cat > "${OFFLINE}/Bufferbloat" << EOF
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Bufferbloat
Name[en_US]=Bufferbloat
Icon=internet-web-browser
Exec=/usr/bin/chromium-browser file:///home/mininet/mininet.wiki/Bufferbloat.html
Comment[en_US]=
EOF
# ------------- Install Other Tools -------------
sudo apt-get install -y wireshark
# Enable root-less wireshark and add mininet
echo "Enabling wireshark group"
echo "wireshark-common wireshark-common/install-setuid boolean true" | sudo debconf-set-selections
sudo dpkg-reconfigure -f noninteractive wireshark-common
sudo usermod -a -G wireshark mininet
echo "Installing VirtualBox Guest Additions"
sudo apt-get install -y virtualbox-guest-x11
# ------------- Zero Unused Blocks -------------
#TODO investigate zerofree
echo "Zeroing unused blocks"
sync
dd if=/dev/zero of=tmp-zeros
sync
rm tmp-zeros
sync