I installed a VirtualBox and then installed a Ubuntu 12.10 Server Base OS in it. I have installed all kinds of php packages and other packages in it. My friends recommended me to use Vagrant so I can share my setup with my team mates easily.
Because my current VirtualBox VM was not created using vagrant up
, I am not sure how to package it. The documentation over at Vagrant talks about packaging but starts by saying:
Before working through the rest of this page, make sure the virtual environment is built by running vagrant up.
In my case, my existing VM was NOT created initially using vagrant up.
How do I package my existing VM?
While not a complete answer, I think you can get what you need from the documentation, which is quite extensive. I believe that
vagrant up
is merely a convenient means to setting up a Vagrant "box". There are a number of requirements for a box to be Vagrant compliant. They are described here...Documentation: Vagrant - Base Boxes
The bare bones needed for a box are as follows...
Once a box is compliant with these requirements, it should simply be a matter of using the
vagrant package
command to create a portable installation...More documentation: Vagrant - Boxes
So, while I don't have a complete answer, having never done it this way, I think it's possible to get your installation into a state that will allow you to package and distribute it.
Make sure that port forwarding and SSH keys are setup properly.
This may be a good example: https://github.com/okfn/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box
Personally, the illusive aspect of the packaging process was the
--base
switch. I suspect that might be the case with a lot of people. Check outvagrant package --help
for the description. The documentation does not seem to make mention of it either.I found these two great, in-depth, step-by-step guides to create Vagrant boxes from machines that were originally VirtualBox machines: