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 [http://trac.gpolab.bbn.com/gcf/wiki/QuickStart 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 [attachment:gcf.ini] and [attachment:omni.ini], in the home dir of the GENI user. = Installing NOX = Downloaded the VM with Omni installed. Then followed the instructions from [http://noxrepo.org/noxwiki/index.php/NOX_Installation 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 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 {{{ }}} 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 {{{ cd /netserv-root/core/linux . setenv-i386-ubuntu make cd ../java make }}}