Using Vagrant to Distribute

Research Code to Colleagues

Speaker: Frank Horowitz (Cornell University)


Using Vagrant to Distribute

“Research Code” to Colleagues

Presentation courtesy of Frank Horowitz.


Problem: You have some code that other colleagues want to *use* (or maybe even co-develop) but your code is composed of many moving parts, and dll-hades awaits on multiple versions of multiple operating systems and software environments. You don’t have time to figure out *how* to install your system on all of: Macs (via homebrew or macports or native versions or whatever) or Windows Boxes (cygwin? native?) or Linux boxes (Centos? Debian? Ubuntu? Suse? and which version?) Combinatorial explosions!

Workable Solution: Vagrant allows you to build and configure a virtual machine with your software system *once-and-only-once* and distribute that to your colleagues.

I’ll describe some scenarios I have faced in such a situation and we will walk through an installation using Vagrant and VirtualBox (both free-as-in-beer) running Ubuntu in a virtual machine on your laptop.

To prevent network meltdown in the meeting room on Monday evening, please have downloaded and installed versions appropriate to your working OS of choice:

  1. VirtualBox

  2. Vagrant

Also ensure that you have a browser, git, and some source-code-editor you know how to use up and running on your laptop.

The result after Monday’s session should be a running IPython/Jupyter notebook environment, configured on a virtual machine running on your laptop, controlled by Vagrant. You will have the source code and data for the whole system editable in your local environment, but will connect to the IPython environment via a browser from your local machine to the Vagrant configured server running the code.

The last step: