Version 28 (modified by David Irwin, 7 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 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
    export PYTHONPATH="/home/geni/Tutorials/Omni/gcf/src:$PYTHONPATH" 

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 plugin from -- 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


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

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

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

Install NetServ code:

cd /home/geni/Tutorials/NetServ
svn co svn://

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

Build NetServ core


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/
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
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 /geni_cert.pem
sudo ln -s /home/geni/Tutorials/DiCloud/ec2/keys/geni_pk.pem /geni_pk.pem
sudo ln -s /home/geni/Tutorials/DiCloud/ec2/keys/geni-keypair /geni-keypair.pem

cd ~/Tutorials/DiCloud/dicloud/lib
wget -O
cp jline-1.0/jline-1.0.jar .
rm -rf jline-1.0

cd ~/Tutorials/DiCloud/bin

  Modify jline include to use jline-1.0.jar

cd /var/www/vise/secure
sudo su
su www-data
tar xzvf dicloud-web.tgz
rm dicloud-web.tgz

dd if=/dev/zero of=s3_test_zeroes bs=1024 count=10 seek=1024
nano s3_test_upload

  This is a test file we are going to upload
  to S3 and then subsequently download as a new 
  name. To make this file a little bigger, below
  we write a long series of zeroes.


cat s3_test_upload s3_test_zeroes > s3_test
rm s3_test_upload
rm s3_test_zeroes

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:


Added RSpecs to the test script folder