Skip to content
Vagrant + ansible for hypergraph project with ipython interactive server
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

#Automated setup of hypergraph project.

This setup will create virtual machine ready for development and interactive exploration.


  • vagrant
  • virtualbox
  • ansible

##How it works


Vagrant will pull box image from the internet. Current box is a plain ubuntu 14.04. Box will be configured in a following way:

  • it will have 2048 MB ram (you can make it smaller - this amount is needed for compilation)
  • it will create a synced folder - syncing data between your host machine and guest
  • create bridged private network, available on

Vagrant can use various provisioners such as puppet, chef or ansible. To provision this project I used ansible which is very simple yet powerful and well documented.

After basic machine setup there is an ansible provisioning phase.


  • install basic packages needed for python development
  • install packages needed for ipython and matplotlib
  • pull the hypergraph sources from github
  • create virtualenv and install all python dependencies
  • create an upstart job
  • start ipython notebook server on private network

##How to use it?

First make sure that you have vagrant, virtualbox and ansible installed on your machine.

On ubuntu:

$ sudo apt-get install virtualbox
$ sudo apt-get install vagrant
$ sudo apt-get install ansible
$ git clone
$ cd hypergraph-provisioning && mkdir hypergraph
$ vagrant up

and go to in your browser. Enjoy :).

You can also ssh to your machine using vagrant ssh.

##Potential improvements

Installing scipy/numpy in virtualenv takes too much time. Using system packages could be much faster.

To do it:

  • choose dependencies you want to "outsource" to packet manager
  • remove those dependencies from requirements.txt
  • add dependencies (with appropriate names for your packet manager to `vars/main.yml
You can’t perform that action at this time.