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.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
provision
README.md
Vagrantfile
vagrant_ansible_inventory_default

README.md

#Automated setup of hypergraph project.

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

##Dependencies

  • vagrant
  • virtualbox
  • ansible

##How it works

###Vagrant

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 http://172.16.0.4/

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.

###Ansible:

  • 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 git@github.com:atteroTheGreatest/hypergraph-provisioning.git
$ cd hypergraph-provisioning && mkdir hypergraph
$ vagrant up

and go to http://172.16.0.4:8888/ 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.