wiki:GENIExperimenter/Tutorials/GENIExperimentEngine

Version 13 (modified by acb@cs.princeton.edu, 4 years ago) (diff)

--

Get to Know the GENI Experiment Engine

Overview:

The GENI Experiment Engine (GEE) platform provides simple, preconfigured environments called slicelets to GENI users. A slicelet consists of Docker containers running on InstaGENI racks; all the containers in a slicelet are connected by a private L3 network. The goal of GEE is to make it fast and easy to get a basic experiment up-and-running on GENI (a.k.a., "the five minute rule"). This tutorial will familiarize participants with the GENI experiment engine.


The goal of the tutorial is, on each node, to run an HTTP query of the form:

http://www.lively-web.org/nodejs/GEETutorial/helloWorld?slice=<slice name>&name=<container name>&ip=<IP of host>&local=<IP of container>&lat=<latitude of host>&lng=<longitude of container>

This page will log each of your queries, and you can check that all your nodes were successfully able to run the query.


To meet this objective, participants will use Ansible to install software and run commands on GEE slicelets spanning 20 InstaGENI racks.

Prerequisites:

Familiarity with Linux.

Tools:

  • During the tutorial we will use the GEE Portal to allocate slicelets to participants. You may instead allocate your slicelet in advance if you'd like.
  • We will be using Ansible to install software in and manage GEE slicelets. Though it's not required to complete the tutorial, you may want to install Ansible on your laptop following these instructions. Ansible does not run directly on Windows; Windows users who want to install Ansible locally can use Vagrant to install an Ubuntu VM on their machine, and then install Ansible in that VM.

How to get help:

During the tutorial, please raise your hand and one of the tutorial leaders will help you.

Resources:

Tutorial Instructions

Design/Setup
  • Part I: Design/Setup
    1. Get a GEE slicelet and download GEE helper files
    2. Learn about GEE networking
    3. Configure the Ansible controller for your slicelet
    4. Learn basic concepts of Ansible
Execute
  • Part II: Execute
    1. Create an Ansible playbook to download a parameterized URL from each node
    2. Run the playbook
    3. Verify that the playbook worked as expected
Finish