Changes between Version 3 and Version 4 of JBSsandbox/PlasticSlices


Ignore:
Timestamp:
04/18/14 22:22:21 (10 years ago)
Author:
Josh Smift
Comment:

Added more docs, especially about the environment requirements

Legend:

Unmodified
Added
Removed
Modified
  • JBSsandbox/PlasticSlices

    v3 v4  
    77A lot of things that used to be here are now on my general [wiki:JBSsandbox/SliceNotes "slice notes" sandbox page]. What's left should in theory be pretty specific to Plastic Slices.
    88
     9= Environment =
     10
     11The tools we use to wrangle Plastic Slices have a variety of requirements for your environment on the system where you want to use them:
     12
     13 * You should have an up-to-date copy of the syseng Subversion repository.
     14 * ~/rspecs should be a symlink to .../syseng/geni/share/rspecs.
     15 * ~/slices/plastic-slices should be a symlink to .../syseng/geni/share/experiment-setup/plastic-slices.
     16 * ~/bin/omni and ~/bin/readyToLogin should be copies of (or symlinks to) the current GCF release.
     17 * ~/bin/shmux should be a copy of the 'shmux' executable.
     18 * Your ~/.ssh/config file should include "!StrictHostKeyChecking no". (FIXME: It'd be better if this were in the ~/.ssh/config section for each host, instead of being a global requirement.)
     19 * ~/.gcf should be your Omni/GCF directory, and you should not mind if cached user and slice credentials are stored there.
     20 * Your default project in your Omni config file should be 'gpo-infra'.
     21 * Your 'users' list in your Omni config file should include the gpo-infra users.
     22 * You should run the various commands all in one shell, because some of the later steps assume that you've run the commands in some of the previous steps. You can run some things in other windows if you know what you're doing, but if you're wrong, things won't work as you expect.
     23 * You should have the following shell functions or aliases (e.g. in your .bashrc):
     24{{{
     25alias shmux='shmux -Sall -m -B -M 20'
     26logins () { for slicename in $slices ; do loginfile=~/tmp/logins-$slicename.txt ; $* ~/slices/*/logins/logins-$slicename.txt >| $loginfile ; done ; logins=$(for slicename in $slices ; do loginfile=~/tmp/logins-$slicename.txt ; cat $loginfile ; done) ; }
     27somni () { slicename=$1 ; rspec=$2 ; am=$(grep AM: $rspec | sed -e 's/^AM: //') ; }
     28}}}
     29
     30This list is intended to be complete, but if we've forgotten something, you may get an error when you try to use some of those tools -- so corollary, if you do get an error when you try to use some of those tools, check with someone else to see if it works for them, and look for ways in which your environment might be different (and if they're not on this list, add them).
     31
    932= Ending and starting a run =
    1033
     
    1235
    1336== Ending ==
     37
     38Make sure your copy of the syseng Subversion repository is up to date and that you don't have uncommitted changes there. Change into your .../syseng directory, and run
     39
     40{{{
     41svn update
     42svn status
     43}}}
    1444
    1545Set the list of slices:
     
    70100== Starting ==
    71101
    72 Update ~/slices/plastic-slices/config/slices.json with any changes for this run.
    73 
    74 Update ~/slices/plastic-slices/config/pairmap.json with any changs for this run. Either edit the file by hand, or generate a new random one:
     102Make sure your copy of the syseng Subversion repository is up to date and that you don't have uncommitted changes there. Change into your .../syseng directory, and run
     103
     104{{{
     105svn update
     106svn status
     107}}}
     108
     109Update ~/slices/plastic-slices/config/slices.json with any changes for this run. Likely changes to think about include:
     110
     111 * Adding or removing aggregates.
     112 * Changing which aggregates are in which slices.
     113 * Changing openflow_controller to point to your personal controller.
     114 * Changing rspec_template_root to point to the directory where you personally have the rspec templates.
     115
     116Update ~/slices/plastic-slices/config/pairmap.json with any changs for this run. At this point, we're maintaining the file by hand, so that we can preserve specific pairs from run to run. The pairs we're preserving are:
     117
     118|| source             || destination            || TCP   || UDP   ||
     119|| bbn-exogeni        || max-instageni          || ps103 || ps108 ||
     120|| clemson-instageni  || wisconsin-instageni    || ps105 || ps110 ||
     121|| fiu-exogeni        || bbn-exogeni            || ps104 || ps107 ||
     122|| fiu-exogeni        || bbn-instageni          || ps103 || ps108 ||
     123|| gatech-instageni   || northwestern-instageni || ps106 || ps107 ||
     124|| kansas-instageni   || northwestern-instageni || ps105 || ps108 ||
     125|| nyu-instageni      || utahddc-instageni      || ps106 || ps109 ||
     126|| sox-instageni      || illinois-instageni     || ps104 || ps109 ||
     127|| stanford-instageni || bbn-instageni          || ps106 || ps109 ||
     128
     129If you add a new aggregate, make sure not to break up those pairs.
     130
     131If for some reason you want to generate a new random pairmap, the Tarvek 00README file has docs for how to do that.
     132
     133Generate the rest of the configuration:
    75134
    76135{{{
    77136cd ~/slices/plastic-slices
    78 python ~/tarvek/generate-pairmap.py ./config/slices.json ./config/pairmap.json
    79 }}}
    80 
    81 Review and edit that if necessary.
    82 
    83 Generate the rest of the configuration:
    84 
    85 {{{
    86137python ~/tarvek/generate-experiment-config.py ./config/slices.json ./config/pairmap.json ./wiki-source.txt
    87138svn rm $(svn st | grep ^! | awk '{ print $2; }')
     
    151202mkdir -p ~/tmp/plastic-slices/$subdir/logs
    152203
    153 cp ~/slices/plastic-slices/config/*json ~/tmp/plastic-slices/$subdir 
     204cp ~/slices/plastic-slices/config/*json ~/tmp/plastic-slices/$subdir
    154205rscpc ~/slices/plastic-slices/hosts/ ~/tmp/plastic-slices/$subdir/00hosts
    155206rscpc ~/slices/plastic-slices/logins/ ~/tmp/plastic-slices/$subdir/00logins