wiki:GEC13VMSetup

Version 12 (modified by Ilia Baldine, 13 years ago) (diff)

--

GEC 13 VM Setup

This page is for keeping track of the setup of the VM that is going to be used for the GEC 12 tutorials. The VM was create using VirtualBox version 4.1.4. It is running Ubuntu version 10.04 LTS.

Please update this page with information on software you install on the VM: Name and version number of the software, location, etc.. Please put tutorial specific software (e.g. experiment software that is installed onto GENI resources) in the specific directories in the Tutorials directory under the user's home directory (e.g. /home/geni/Tutorials/ExptWorkflow).

Experimental Workflow Tutorial

  • Installed Omni, Final gcf 1.6 release Install the following packages
    sudo apt-get install python-m2crypto python-dateutil \
                         python-pyopenssl libxmlsec1 xmlsec1 \
                         libxmlsec1-openssl libxmlsec1-dev
    

Download release gcf1.6

cd Tutorial/ExptWorkflow
tar xvfz gcf-1.6.tar.gz
\rm gcf-1.6.tar.gz
ln -s gcf-1.6 gcf
  • Added in the end of the .bashrc file of the GENI user these lines
    # set PATH so it includes Omni software if it exists
    if [ -d "/home/geni/Tutorials/ExptWorkflow/gcf/src" ] ; then
        PATH="/home/geni/Tutorials/ExptWorkflow/gcf/src:$PATH"
        PATH="/home/geni/Tutorials/ExptWorkflow/gcf/examples:$PATH"
        export PYTHONPATH="/home/geni/Tutorials/ExptWorkflow/gcf/src:$PYTHONPATH"
    fi
    
    # set PATH to include scripts for the Experiment Workflow tutorial
    if [ -d "/home/geni/Tutorials/ExptWorkflow/bin" ] ; then
        PATH="/home/geni/Tutorials/ExptWorkflow/bin:$PATH"
        PATH="/home/geni/Tutorials/ExptWorkflow/gcf/examples:$PATH"
    fi
    
    
  • Added scripts, credentials and rspecs files. These all need to be updated before the Final version of the VM

Installing NetServ

Dependencies:

# for building netserv
sudo apt-get update
sudo apt-get install \
      build-essential \
      automake \
      openssl \
      libtool \
      libnetfilter-queue-dev \
      ntp \
      libpoco-dev \
      libssl-dev \
      libxerces-c-dev \
      xsdcxx

# Install OpenJDK if no JDK has been installed already.
#
#   sudo apt-get install openjdk-6-jdk
# 
# If some other JDK has been installed already, make sure JAVA_HOME
# environment variable is set in .bashrc for both the geni user and
# root.  For example, if Sun JDK has been installed, the following 
# line should be in both .bashrc:
#
#   export JAVA_HOME=/usr/lib/jvm/java-6-sun
#

# for tutorial
sudo apt-get update
sudo apt-get install \
      vim-gtk \
      subversion

Install NetServ code:

cd /home/geni/Tutorials/NetServ
svn co svn://saesaksi.cs.columbia.edu/netserv/branches/gec-tutorial

sudo ln -s /home/geni/Tutorials/NetServ/gec-tutorial /netserv-root
cd /netserv-root

Build NetServ core

./build-netserv-gec-tutorial.sh

Trema Tutorial

Install prerequisites and utils:

% sudo apt-get install gcc make ruby ruby-dev irb file libpcap-dev libsqlite3-dev
% sudo apt-get install rubygems git-core

Install Trema:

% sudo gem install trema --remote
% sudo ln -s /var/lib/gems/1.8/bin/trema /usr/bin/trema

Download tutorial files:

% cd Tutorials/Trema
% git clone git://github.com/trema/GEC13.files.git .

ORCA Tutorial

  • Installed credentials and omni_config for each of 21 users

Created a directory for each user

geni@geni-vm:~/Tutorials/ORCA$ pwd
/home/geni/Tutorials/ORCA
geni@geni-vm:~/Tutorials/ORCA$ ls
orcatu01  orcatu04  orcatu07  orcatu10  orcatu13  orcatu16  orcatu19
orcatu02  orcatu05  orcatu08  orcatu11  orcatu14  orcatu17  orcatu20
orcatu03  orcatu06  orcatu09  orcatu12  orcatu15  orcatu18  orcatu21

Each user has an omni_config file and a set of passphrase protected credentials in an ssh directory

geni@geni-vm:~/Tutorials/ORCA/orcatu01$ ls
omni_config  ssh
geni@geni-vm:~/Tutorials/ORCA/orcatu01$ ls ssh
orcatu01-cert.pem  orcatu01-key  orcatu01-key.pub
geni@geni-vm:~/Tutorials/ORCA/orcatu01$ 
  1. There is a Java keystore named orcatuXX.jks in each ssh/ subdirectory to be used with Flukes. Each keystore file contains the private key and certificate from the pem file in the same directory. Key and keystore passwords are the same within each keystore and match the .pem file passwords.
  2. There is a Flukes jnlp on the desktop (double-click to launch)
  3. There is a ~/.flukes.properties that needs to be customized by the experimenter (very easy - substitute XX in a couple of places for their index).

Everything else (slice requests) the experimenters will download from the web at the time of the tutorial.