= 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. 1. There is a Flukes jnlp on the desktop (double-click to launch) 1. 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; can be done in a text editor). Everything else (slice requests) the experimenters will download from the web at the time of the tutorial.