Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Going virtual managing virtual machines with vagrant and ruby
Clone this wiki locally
Vagrant (http://vagrantup.com) is a fairly mature Ruby toolkit for describing, running and packaging VirtualBox VMs. It uses chef or puppet for provisioning and runs on every major OS.
For a bit more than a year, we experimented with headless VMs for development and finally switched to a new development style: development exclusively happens on VMs.
I would like to present vagrant as well as give an overview of our experiences, both positive and negative, especially regarding teamwork and ease of development. I would like to touch the following topics:
- An Introduction to vagrant
- Describing VMs
- Basic VM lifecycle: running, provisioning, destroying
- Extending Vagrant
- Distributing virtual machines
- Problems we solve using it
- Messy/non-uniform development machines
- Problematic project requirements, especially on legacy projects
- Distributing changes of the development environment
- Easing distributed development
- Our current development style
- VM export/import
- Hardware requirements
- Bandwidth problems
- API breakage (Vagrant is beta after all)
This is intended to be a hands-on, user-centric talk on a pretty interesting and well written management tool written in Ruby.
Florian Gilcher is programming Ruby for 8 years now and a EuRuKo regular since 2007. Along with some friends, he maintains one of the largest german Q&A ruby communities. His main interests lie in using Ruby for helpful tools, but also works on the Padrino web framework.
Sebastian Schulze is fairly new to the Ruby world. He spent the last decade of his work life building web apps with Symfony and Agavi, while trying to learn Ruby in his spare time. After being bugged by Florian for quite awhile, he gave Padrino a try and fell in love with the Ruby tool chain for web developers.