geni-lib can be installed on any platform that supports Vagrant using the instructions below.

Two variants of the Vagrant environment can be created - a lite version that only contains geni-lib and should only be used by developers that are accustomed to working with Vagrant or similar environments, and a lab version that is more fully-featured and should be used by new geni-lib users or those using geni-lib for a class or conference tutorial.

The documentation here currently only covers the lab version.

The Vagrant VM created by this process automatically sets up your geni-lib context and provides a web interface for creating Jupyter notebooks using GENI resources, as well as a web-based interface for accessing the VM shell.

Installation Dependencies

Install these dependencies before creating the Vagrant VM.

Set up your geni-lib VM directory

  • On systems with curl (MacOS X, Linux) you can use the following command:

    curl -o Vagrantfile
  • On Windows systems with Powershell you can use the following:

    PS C:\genivm> $client = new-object System.Net.WebClient
    PS C:\genivm> $client.DownloadFile("", "C:/genivm/Vagrantfile")


    The full path for the destination must be specified in the second argument to DownloadFile

  • Create your vagrant vm using vagrant up in this directory


This may take a long time (20+ minutes) depending on the speed of your internet connection

Load the Jupyter web interface

  • Open any web browser and load http://localhost:8900
  • In the upper right-hand corner of the UI, choose New->(Notebooks) Python 2 from the dropdown menu
  • In the new notebook enter %load_ext genish in the first cell and enter your key passphrase if necessary (otherwise just hit enter to skip the passphrase entry)

Accessing the VM Terminal

You may often want to access the VM command line for accessing your GENI resources, updating geni-lib, etc. While you can use vagrant ssh on some platforms, this doesn’t work very well on Windows, so the VM provides a web-based mechanism for accessing the VM shell directly.

  • Open any web browser and load http://localhost:8900
  • In the upper right-hand corner of the UI, choose New->Terminal from the dropdown menu

This will automatically log you into the VM and provide you a shell interface for using the VM OS directly.