hashicorp / vagrant

Vagrant is a tool for building and distributing development environments.
https://www.vagrantup.com
Other
26.27k stars 4.43k forks source link

Meta-boxes (Boxes without a VM image) #158

Closed mitchellh closed 13 years ago

mitchellh commented 14 years ago

Boxes currently are used as a form to pass around virtual machine images. The pro of a box is that it can make setup time FAST since a Vagrantfile simply needs to reference a box and minimal provisioning is required. The con is that boxes are HUGE (1 GB average), and therefore hard to host or make portable.

While this GH issue won't solve the entire problem described above, it is a step in the right direction: Meta-boxes.

A meta-box is a not a standalone box. Instead, it is a packaged vagrant environment which consists of a Vagrantfile plus additional files, which itself still uses a box. The chain of Vagrantfiles to load then becomes the following:

Default (in Vagrant sources)
Box
Meta-box
Home directory
Project directory

A box without a VM image allows things like cookbooks to be embedded alone within the box. So boxes can now be passed around which will be SUPER lightweight (maybe 100 KB on average? probably less) which are simply pre-configured provisioning packages, basically.

More features to address the larger issue at hand will be created.

zimbatm commented 13 years ago

I think it's already solved by provisioning. If you're able to standardize all your boxes on one distro+release like lucid32, then the only thing that changes between boxes are the Chef or Puppy recipes.

mitchellh commented 13 years ago

I think there are a lot of other issues with boxes which need to be addressed before something like this would be viable. I won't go into details here but I'm not going to implement this yet.