wiki:GEC12VMSetup

Version 26 (modified by David Irwin, 12 years ago) (diff)

--

GEC 12 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/Omni).

Note that the password for the root MySQL user is geniuser.

Software Installation Schedule

  1. Niky (Omni) -- COMPLETED
  2. Jason (PrimoGENI) -- COMPLETED
  3. Jae (NetServ) -- COMPLETED
  4. Michael and David (DiCloud) -- COMPLETED
  5. Charles (GIMS) -- COMPLETED

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 "/home/geni/Tutorials/Omni/gcf/src" ] ; then
    PATH="/home/geni/Tutorials/Omni/gcf/src:$PATH"
    export PYTHONPATH="/home/geni/Tutorials/Omni/gcf/src:$PYTHONPATH" 
fi

Installing NOX

Installing PrimoGENI

We performed the following steps:

1) sudo apt-get install subversion

-- apt-get installed libapr1 libaprutil1 libsvn1 as dependencies

2) sudo apt-get install g++

-- apt installed g++-4.4 libstdc++6-4.4-dev as dependencies

3) downloaded and installed apache ant at /usr/share/apache-ant-1.8.2

-- added symlink /usr/share/ant to /usr/share/apache-ant-1.8.2 -- added symlink to ant in /usr/bin /usr/share/ant/bin/ant

4) Downloaded and installed Java SDK 6.27 from Oracle

-- installed java at /usr/lib/jvm/jdk1.6.0_27 -- added symlinks for java commands to /etc/alternatives (pointing binaries in /usr/lib/jvm/jdk1.6.0_27/bin ) -- added symlinks at /usr/bin for java commands (pointing to /etc/alternatives) -- added 'export JAVA_HOME=/usr/lib/jvm/jdk1.6.0_27/' to /home/geni/.bashrc -- this is how java is normally installed on ubuntu

5) Checked out our software to /home/geni/workspace/primex using svn

6) Downloaded the latest eclipse

-- installed it at /home/geni/bin/eclipse -- installed pde and rcp components -- installed http://robrohan.com/projects/afae plugin from https://www.primessf.net/pub/Public/PrimoGENIProject/afae_plugins.tgz -- set default workspace to /home/geni/workspace -- imported /home/geni/workspace/primex/netIDE as a project

7) Created Slingshot Application at /home/geni/bin/slingshot

8) Added shortcut to Slingshot on the Desktop

Installing NetServ

Dependencies:

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

# OpenJDK not installed because PrimoGENI installed Sun JDK
# sudo apt-get install openjdk-6-jdk

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

Install NetServ code:

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

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

Build NetServ core

./build-netserv-gec12.sh

Installing DiCloud

List of commands we ran to prime the image for DiCloud's tutorial. A link to DiCloud's tutorial documentation is here.

sudo apt-get update
sudo apt-get install apache2
sudo apt-get install libapache2-mod-php5
sudo apt-get install php5-mysql
sudo a2enmod php5
sudo apt-get install mysql-server

cd ~/Tutorials/
wget http://geni.cs.umass.edu/dicloud-tutorial.tgz
tar xzvf dicloud-tutorial.tgz
mv dicloud-tutorial.tgz DiCloud/source

cd /var/www
sudo ln -s /home/geni/Tutorials/DiCloud/www/vise vise
cd ~/Tutorials/DiCloud
sudo chown -R www-data www
sudo chgrp -R www-data www
chmod u+x key_install.sh
sudo ln -s /usr/lib/jvm/jdk1.6.0_27 java-6-sun

mysql -u root -p
mysql> create database dicloud;
mysql> create user vise;
mysql> SET PASSWORD FOR 'vise' = PASSWORD('');
mysql> quit;

mysql -u root -p < source/dicloud.schema
mysql -u root -p
mysql> use dicloud;
mysql> INSERT INTO users(id, username, password) VALUES (1, 'admin', SHA1('geni'));
mysql> INSERT INTO admin_rights VALUES (1, true, true, true, true);
mysql> GRANT ALL ON dicloud.* TO 'vise'@'localhost';
mysql> quit;

cd ~/Tutorials/DiCloud
nano environment

  [
     Add $DICLOUD_HOME/bin to PATH

  ]

sudo ln -s /home/geni/Tutorials/DiCloud/ec2/keys/geni_cert.pem
sudo ln -s /home/geni/Tutorials/DiCloud/ec2/keys/geni_pk.pem

cd ~/Tutorials/DiCloud/dicloud/lib
wget http://sourceforge.net/projects/jline/files/jline/1.0/jline-1.0.zip/download -O jline-1.0.zip
unzip jline-1.0.zip
cp jline-1.0/jline-1.0.jar .
rm -rf jline-1.0

cd ~/Tutorials/DiCloud/bin
nano dicloud_console.sh

[
  Modify jline include to use jline-1.0.jar
]

cd /var/www/vise/secure
sudo su
su www-data
wget http://geni.cs.umass.edu/dicloud-web.tgz
tar xzvf dicloud-web.tgz
rm dicloud-web.tgz
exit
exit

Installing GIMS

Created folder /mnt/shared and mounted my content there using the command:

sudo mount -t vboxsf GEC12 /mnt/shared

Created folder ~geni/Tutorials/GIMS

Added ProtoGENI test scripts to this folder.

Added ProtoGENI credentials:

  $HOME/.ssl/encrypted.pem
  $HOME/.ssl/password

Added RSpecs to the test script folder

  GimsMSNSSH.rspec
  GimsMSNProduction.rspec
  GimsMSNLocalhost.rspec