Copie el cuadro vagabundo localmente

27

Tengo un cuadro vagabundo ejecutándose en VirtualBox, y necesito hacer una copia (con toda su configuración y datos existentes), para poder hacer cambios en él sin afectar el original.

El problema es que mi caja original vino como un paquete de archivos: la conexión a Internet con la que estoy trabajando es extremadamente lenta, por lo que otra persona copió sus carpetas vagabundos y de virtualbox en mi máquina. Por lo tanto no hay

config.vm.box_url

usar.

¿Cómo puedo lograr esto?

Editar: estoy usando Vagrant 1.2.2

xiankai
fuente

Respuestas:

41

Cree un nuevo cuadro a partir de su vm existente:

  • cd en el directorio con su archivo Vagrant

  • ejecutar vagrant packageEsto exportará un archivo box llamado package.box por defecto

  • ejecutar vagrant box add foo package.boxpara agregar package.box a sus cuadros existentes. (Suponiendo que está utilizando VirtualBox y no VMWare)

  • ejecutar vagrant box listpara verificar que se agregó.

Ahora puede crear una nueva carpeta, ejecutarla vagrant initnormalmente y configurar su cuadro de la siguiente manera:

 config.vm.box = "foo"

La nueva VM se activará con los datos exactos que estaban presentes en la VM anterior.

Documentación vagabunda


Además, verifique un nuevo producto de los creadores de Vagrant llamado Packer . Hará lo mismo, pero le permitirá copiar sus máquinas virtuales a otros proveedores (Amazon, VirtualBox, etc.)

Actualizar

Las versiones más recientes de Vagrant tienen dos comandos que hacen innecesarios los pasos anteriores.

vagrant share
vagrant package

Vagrant sharecargará su caja a atlas
Vagrant package creará un archivo .box automáticamente.

Para más información, escriba vagrant --help

Spuder
fuente
Parece una gran manera, pero desafortunadamente estoy usando una versión diferente de vagabundo, mientras que sus comandos parecen ser para 1.0.x
xiankai
@xiankai Estoy ejecutando 1.2.2 y he verificado que estos pasos funcionan para mí. Hice algunos ajustes a mi respuesta para mayor claridad, inténtelo de nuevo y avíseme qué errores obtiene.
Spuder
¡Ah, después de mirar el enlace que publicaste, lo intenté en vagrant packagelugar de hacerlo vagrant box packagey parece que ahora estoy en el camino correcto!
xiankai
El paquete vagabundo es correcto. Eso fue un error tipográfico de mi parte.
Spuder