[Freedombox-discuss] Tools to speed up development on the freedombox

Stefan Cocora stefan.cocora at googlemail.com
Fri Mar 9 00:44:59 UTC 2012


Hi all,

   I'd like to help speed up development on the freedombox's various
software by using three established open-source tools to create virtual
machines that can be easily distributed, destroyed and recreated.

I can create a base OS install using veewee
https://github.com/jedi4ever/veewee
All you need for it is ruby, virtualbox, the veewee gem.
This tool can:

- create a base OS just as if you'd install it from a PXE server. It
allows in depth customization

After I've created the OS, it can be packaged into a .box file and
people can use it as base box with the next tool.

The second tool is vagrant  https://github.com/mitchellh/vagrant
All you need for this tool is ruby, virtualbox, vagrant gem

This tool can take the .box file and use it to create a Virtualbox
virtual machine programmatically.(you have a text file where you specify
no of cpus, amount of ram , etc)
In conjunction with a tool like puppet http://puppetlabs.com/
( configuration management tool )
it will allow for the cycle of  creation -- hacking -- destroy of a
virtual machine without losing the state of your work, and without
needing to keep all the vms in the world on your hard-drive.

I'm aware that these tools won't help low level kernel hackers. It will
help people working on other software that work on top of the OS layer:
eg privoxy, monkeysphere, etc

How will these tools help speed up development ?
1.	First you'd create a base OS using veewee. I haven't investigated how
well it works with freedom-maker. I've used it to create a debian VM
from a debian 6 netinstall iso with a preseed file.
2.	Secondly you'd write a Vagrant file , and put it on a web server
together with the .box file.
At the moment that people install vagrant and download the Vagrant file,
vagrant will download the .box file and create a Virtualbox VM from it.
Vagrant only downloads the .box file the first time. All people will
have, at this point, the same base OS , with the same packages,  kernel
version, etc
3.	As an additional layer for people working on lets say privoxy, you'd
have puppet code that will ensure all of them, after bringing the
previous vagrant box up would have the same privoxy version, same conf
files, same iptable rules, etc on top of the OS version established at
point 2.(the puppet code will be applied by vagrant automatically)
	These 3 steps mean that anyone wanting to hack on privoxy, would, in 10
minutes, get a VM up and running the current state of the OS and the
current state of the github project for privoxy.

	Let me know if you think this is a helpful idea for the freedombox project.

Regards,
Stefan



More information about the Freedombox-discuss mailing list