wiki:GEC11VMSetup

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
Last modified 8 years ago Last modified on 07/28/11 18:13:40

Attachments (2)

Download all attachments as: .zip