wiki:GENIExperimenter/Tutorials/GENIExperimentEngine

Version 1 (modified by acb@cs.princeton.edu, 9 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>

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

Prerequisites:

None

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:

Resources:

Tutorial Instructions

Design/Setup
  • Part I: Design/Setup
    • Get a GEE slicelet and download GEE helper files
    • Learn about GEE networking
    • Learn basic concepts of Ansible
    • Configure the Ansible controller for your slicelet
Execute
  • Part II: Execute
    • Experiment with various Ansible modules: ping, shell, setup
    • Create an Ansible playbook to achieve the tutorial objective
Finish
  • Part III: Finish
    • Verify that the tutorial objective has been met
    • Free the GEE slicelet