Is there any way to clone a vagrant box that is already installed

Solution 1:

The easiest thing to do would be to package the pre-configured vagrant box and transfer the .box file to the other machine, add the box and run vagrant up.

So the steps look like below:

  1. Package the pre-configured box => vagrant package --base preconfigured_vm --output /path/to/mybox.box. Note that as per the docs, the --base option should be the UUID of the machine, or the name VirtualBox gives the machine (found when opening the VirtualBox application).
  2. transfer the box to the computer by using scp, rsync or whatever... (you also start a web server quickly by using python -m http.server PORT or ruby -run -e httpd /path/to -p PORT)
  3. Init and start vagrant init preconfigured_vm /path/to/mybox.box
  4. Done

Solution 2:

You just have to download the VM box only one time and make the all changes and configurations that you need and then re-package this one on a new box called "myVM.box".

Then you comment in the Vagrantfile the following line

#config.vm.box_url = "https://site_of_boxes..."

and used

config.vm.box = "myVM"

It starts up without download any VM.