This page is for keeping track of the setup of the VM that is going to be used for the Tutorial.
These instructions are for VirtualBox 4.08.
In order to make the VM more usable, installed the Guest Additions (Devices -> Install Guest Additions).
Installing Omni
To install Omni, just follow the instruction at Omni Quick Start. In more detail, install the following packages
sudo apt-get install python-m2crypto python-dateutil \ python-pyopenssl libxmlsec1 xmlsec1 \ libxmlsec1-openssl libxmlsec1-dev
Download release gcf1.3 from http://www.gpolab.bbn.com/local-sw/ under /usr/local/geni/ and untar it.
tar xvfz gcf-1.3.tar.gz \rm gcf-1.3.tar.gz ln -s gcf-1.3/ gcf
Added in the end of the .profile file of the GENI user these lines
# set PATH so it includes geni software if it exists if [ -d "/usr/local/geni/gcf/src" ] ; then PATH="/usr/local/geni/gcf/src:$PATH" export PYTHONPATH="/usr/local/geni/gcf/src:$PYTHONPATH" fi
Also placed files gcf.ini and omni.ini, in the home dir of the GENI user.
Installing NOX
Downloaded the VM with Omni installed. Then followed the instructions from here.
cd /etc/apt/sources.list.d sudo wget http://openflowswitch.org/downloads/debian/nox.list sudo apt-get update sudo apt-get install nox-dependencies
Since nox-dependencies is not a common package, just to keep track of which packages are installed, these are the packages included in nox-dependencies :
> dpkg --info nox-dependencies.deb new debian package, version 2.0. size 788 bytes: control archive= 491 bytes. 511 bytes, 9 lines control 499 bytes, 9 lines control~ Package: nox-dependencies Version: 0.1 Architecture: all Depends: doxygen, doxypy, build-essential, python-dev, autoconf, automake, make, g++, libtool, python-twisted, python-dev, swig, libssl-dev, libboost-dev (>= 1.34.1), libboost-test-dev, libboost-filesystem-dev Suggests: git-core, libsqilte3-dev, python-simplejson Maintainer: KK Yap [yapkke@stanford.edu] Description: This package installs the dependencies needed for NOX to be built from source. There is no actual content in this package.
After the dependencies are installed
cd git clone git://noxrepo.org/nox cd nox ./boot.sh cd ../ mkdir nox_build cd nox_build ../nox/configure make -j 5
To verify that the install was successful
./nox_core -h
Installing sface and raven
Most of this is done as root, i.e. "sudo bash".
Dependencies:
apt-get install python-qt4 python-lxml m2crypto python-dateutil rpm
Sface and Raven packages:
echo "deb http://pl-virtual-11.CS.Princeton.EDU/apt lucid main" > /etc/apt/sources.list.d/sfa.list apt-get update apt-get install sfa sfa-client sface ravenlib raven geni-account-setup ravendemo-setup # sface and sfa are installed to site-packages; Ubuntu uses dist-packages echo "/usr/lib/python2.6/site-packages" > /usr/lib/python2.6/dist-packages/site-packages.pth
Setting up accounts:
/usr/local/geni/account_setup/scripts/createusers.sh /usr/local/geni/account_setup/scripts/setpasswords.sh /usr/local/geni/account_setup/scripts/copykeys.sh /usr/local/geni/account_setup/scripts/configsfi.sh rm -f /tmp/sfa*.log
There should be 31 accounts, guest1, guest2, ..., guest31. The password for each of them is "geni". We've designated guest31 to be used for testing purposes (guest31 is identical to the other 30, but will not be handed out to attendees).
All of the above steps are packaged into a script at http://pl-virtual-11.CS.Princeton.EDU/gec11.sh
.
Verify Installation:
# should open sface GUI # should include tabs: MainWindow Config Help Raven sface
Installing Gush
Note: This does not account for installing user keys and certificates into the correct places. As the geni user, run the following commands:
apt-get install keychain mkdir /usr/local/geni/gush cd /usr/local/geni/gush wget http://gush.cs.williams.edu/gush-bin-32bit.tgz
During the tutorial, attendees will start by logging into one of the guest accounts, and then copying the tarball to their home directory. The following steps are run as the guest users in their home directories:
bash keychain ~/.ssh/id_rsa echo 'StrictHostKeyChecking no' >> ~/.ssh/config mkdir gush cd gush cp /usr/local/geni/gush/gush-bin-32bit.tgz . tar xzvf gush-bin-32bit.tgz
To verify:
./gush -P 15000
Users will also have to create/modify directory.xml and omni_config. Here are samples for guest31:
directory.xml
<?xml version="1.0" encoding="UTF-8"?> <gush> <resource_manager type="geni-plc"> <port_map slice="gec11_slice31" port="61500"/> </resource_manager> <resource_manager type="geni-pg" cf="plc"> <port_map slice="slice31" port="61600"/> </resource_manager> </gush>
omni_config:
[omni] users = guest31 [plc] type=sfa authority=plc.gec11 user=plc.gec11.guest31 cert=~/.sfi/plc.gec11.guest31.gid key=~/.sfi/guest31.pkey registry=http://www.planet-lab.org:12345 slicemgr=http://www.planet-lab.org:12347 [guest31] urn=urn:publicid:IDN+plc:gec11+user+guest31 keys=~/.ssh/id_rsa.pub
Installing NetServ
Dependencies:
# for building netserv sudo apt-get install \ build-essential \ automake \ openssl \ libtool \ libnetfilter-queue-dev \ openjdk-6-jdk \ ntp \ libpoco-dev \ libssl-dev \ libxerces-c-dev \ xsdcxx # for tutorial sudo apt-get install \ vim-gtk \ subversion
Install NetServ code:
cd /usr/local/geni svn co svn://saesaksi.cs.columbia.edu/netserv/branches/gec11 netserv sudo ln -s /usr/local/geni/netserv /netserv-root cd /netserv-root
Build NetServ core
./build-netserv-gec11.sh
Attachments (2)
- omni.ini (4.2 KB) - added by 13 years ago.
- gcf.ini (2.5 KB) - added by 13 years ago.
Download all attachments as: .zip