Changes between Version 1 and Version 2 of GEC15Agenda/AdvancedGENITopoOmni/Instructions/ClickExampleExperiment


Ignore:
Timestamp:
10/19/12 01:39:07 (7 years ago)
Author:
nriga@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GEC15Agenda/AdvancedGENITopoOmni/Instructions/ClickExampleExperiment

    v1 v2  
    33= Example Experiment - Click Routers =
    44
    5 In this example experiment, you will configure and run a non-IP software routing configuration, using the [http://read.cs.ucla.edu/click/click Click] modular router and [http://protogeni.net ProtoGENI] hosts. In this example, we'll be running click in user mode. Once you have the prerequisites in place, you should be able to complete this example experiment in under an hour.
     5In this example experiment, you will configure and run a non-IP software routing configuration, using the [http://read.cs.ucla.edu/click/click Click] modular router and [http://protogeni.net ProtoGENI] hosts. In this example, we'll be running click in user mode.
    66
    77Please note that you can't just cut and paste all of the commands. There are additional instructions in the text.
    88
    9 == Prerequisites ==
    10 
    11 Before beginning this experiment, you should:
    12 
    13  * Have a GENI credential. If you don't, check out SignMeUp.
    14  * Configure omni (version 1.5.2 or later) on your machine. Be sufficiently comfortable with omni to verify that a '''listresources''' command works and to know when your slice is ready using '''sliverstatus'''.
    15  
    16 Information on obtaining GENI credentials and omni is available at SignMeUp and [wiki:HowToUseOmni] or by contacting [mailto:help@geni.net].
    17 
    18 == Setup ==
    19 
    20 Create a new directory, '''click-example''', on your machine. You will do the rest of your work from this directory.
    21 
    22 {{{
    23 mkdir click-example
    24 cd click-example
    25 }}}
    26 
    27 Download [attachment:click-example.rspec?format=raw the attached rspec file] and save it in your '''click-example''' directory, using the name '''click-example.rspec'''. Be sure to use raw mode.
    28 
    29 If you haven't already, add your omni source and examples directories to your PATH:
    30 
    31 {{{
    32 export PATH=$PATH:/path/to/gcf-1.x.x/src:/path/to/gcf-1.x.x/examples
    33 }}}
    34 
    35 If you haven't already, add your omni source directory to your PYTHONPATH:
    36 
    37 {{{
    38 export PYTHONPATH=$PYTHONPATH:/path/to/gcf-1.x.x/src
    39 }}}
    40 
    41 (Optional) You'll be making heavy use of your private key to log into your ProtoGENI hosts in the steps below. If your key is encrypted, you might want to take a look at ways for [wiki:HowTo/LoginToNodes#ManagingSSHKeys managing your ssh keys] to make this easier.
    42 
    43 == Obtain your resources ==
    44 
    45 Create your slice. Please don't use my stupid slice name.  This example will use the Utah ProtoGENI site. You can choose a different site by selecting a different aggregate manager with the -a switch.
    46 
    47 {{{
    48 omni.py createslice -a http://www.emulab.net/protogeni/xmlrpc/am StupidSliceName
    49 }}}
     9== 1. Add another user to your experiment ==
     10Omni gives you the capability of giving access  to other users on your compute resources. Depending on which AM you are using to get resources from,  this is done in a different way.  Ask the team next to you about their username and do the following:
     11  i. While in a terminal, download their public key under `~/.ssh/` :
     12  {{{
     13    cd ~/.ssh
     14    wget http://www.gpolab.bbn.com/experiment-support/gec15/adv-omni/pub-keys/<username>_key.pub
     15  }}}
     16
     17  i. Follow the instructions [wiki:HowTo/MulitpleUsersWithOmni these instructions] and add another user for ProtoGENI AMs
     18
     19== 1. Create your experiment ==
     20In this step, we are going to setup the experiment. In this tutorial we assume that you are sufficiently comfortable with omni to verify that a '''listresources''' command works and to know when your slice is ready using '''sliverstatus'''.
     21  i. '''Create a slice''', use the slicename given to you in the paper slip:
     22  {{{
     23omni.py createslice <slicename>
     24}}}
     25  i. '''Create a sliver''' using the rspec from the URL given in your paper slip:
     26  {{{
     27omni.py createsliver -a pg-utah <slicename> <rspec_url>
     28}}}
     29   i. '''Check the status of your sliver'''
     30   {{{
     31omni.py sliverstatus -a pg-utah <slicename>
     32}}}
     33
     34== 2. Install scripts ==
     35While you wait for your sliver to become ready, we will see how we can automate the installation of our experiment with install scripts.
     36In this experiment we are going to use software routers in order to write our own forwarding scheme. This means that in any experiment we are going to run we want the basic installation of the software router to always be present. The configuration might change from run to run, but the software should always be installed. The software to be installed, and the scripts to be executed at boot time, are defined in the rspecs. Follow these steps to locate your install script and identify the different parts.
     37  i. Download your rspec
     38  {{{
     39   cd /tmp
     40   wget <rspec_url>
     41}}}
     42  i. Open your rspec and look for the `install` tag and copy the value of the URL attribute.
     43  i. Download and untar the software
     44  {{{
     45  cd /tmp
     46  wget <software_url>
     47  tar xvfz <software_name>
     48}}}
     49  i. Look in your rspec and locate the `execute` tag. Note what script is being executed at boot time.
     50  i. Locate the script and open it. Can you identify the different parts?
     51
     52== 3. Configure your routers ==
     53Once our sliver is ready we will go ahead and configure our click routers. In this example we have 4 routers, so instead of logging into each one of them and configuring it, we are going to use remote execution and configure them from our VM.
     54
     55=== 3a. Remote execution ===
     56In order to figure out how to login
    5057
    5158Create a sliver and add resources. (You changed the slice name, right?)