virtual-machine - hashicorp - vagrant package
Cómo exportar una máquina virtual Vagrant para transferirla (6)
Como se indica en
¿Cómo puedo cambiar dónde Vagrant busca su disco duro virtual?
el estado de la máquina virtual se almacena en una carpeta VirtualBox predefinida. Copiar la máquina correspondiente (carpeta) además de su proyecto vagabundo a su otro host debe preservar el estado de su máquina virtual.
Tengo una caja vagabunda en funcionamiento (configurada con una pila LAMP). Necesito transferirlo a otra PC. ¿Cómo puedo exportarlo? Supongo que puedo obtener un archivo (o archivos) que se pueden copiar en otra PC, así que puedo ejecutar algún comando para importar la caja vagabunda.
Esto es realmente bastante simple
- Instalar el cuadro virtual y el vagrant en la máquina remota
Envuelva su máquina vagabunda
vagrant package --base [machine name as it shows in virtual box] --output /Users/myuser/Documents/Workspace/my.box
copia la caja a tu control remoto
inicie el cuadro en su máquina remota ejecutando
vagrant init [machine name as it shows in virtual box] /Users/myuser/Documents/Workspace/my.box
Ejecutar
vagrant up
La forma más fácil sería empaquetar el cuadro de Vagrant y luego copiarlo (p. Ej., scp
o rsync
) en la otra PC, agregarlo y vagrant up
;-)
Para conocer los pasos detallados, mira esto =>
¿Hay alguna forma de clonar un cuadro vago que ya está instalado?
Mi disco duro en mi Mac estaba haciendo ruidos de pitido en el medio de un proyecto, así que decidí instalar un SSD. Necesitaba mover mi proyecto de un disco a otro. Algunas cosas a considerar:
- Estoy vagabundo con virtualbox en una Mac
- Estoy usando git
Esto es lo que funcionó para mí:
1.) Copy your ~/.vagrant.d directory to your new machine.
2.) Copy your ~/VirtualBox/ VMs directory to your new machine.
3.) In VirtualBox add the machines one by one using **Machine** >> **Add**
4.) Run `vagrant box list` to see if vagrant acknowledges your machines.
5.) `git clone my_project`
6.) `vagrant up`
Tuve algunos problemas con las adiciones de VB Guest.
Los arreglé con esta solución .
Ninguna de las respuestas anteriores funcionó para mí. Llevo 2 días trabajando en la migración de una máquina Vagrant + VirtualBox de una computadora a otra ... ¡Es posible!
En primer lugar, debe comprender que la máquina virtual está separada de su carpeta sincronizada / compartida. Entonces, cuando empaca su máquina, la empaqueta sin sus archivos, sino con las bases de datos.
Qué necesitas hacer:
1- Abre la CMD de tu computadora 1 máquina host (línea de comando. Ábrela como administrador con el botón derecho -> "Ejecutar como administrador") y ve a tus archivos instalados vagabundos. En mi caso: C: / VVV Verá su Vagrantfile y también estas carpetas:
/config/
/database/
/log/
/provision/
/www/
Vagrantfile
...
La carpeta / www / es donde tengo mi carpeta de sincronización con mis dominios de desarrollo. Puede tener su carpeta de sincronización en otro lugar, solo asegúrese de entender lo que está haciendo. También / config y / database son carpetas de sincronización.
2- ejecuta este comando: vagrant package --vagrantfile Vagrantfile
(Este comando hace un paquete de su máquina virtual usando su configuración de Vagrantfile).
Esto es lo que puede leer en la documentación de Vagrant sobre el comando:
Una idea errónea común es que la opción --vagrantfile empaquetará un Vagrantfile que se utiliza cuando se usa init errante con esta casilla. Este no es el caso. En su lugar, un Vagrantfile se carga y se lee como parte del proceso de carga de Vagrant cuando se usa el cuadro. Para obtener más información, lea sobre la orden de carga de Vagrantfile.
https://www.vagrantup.com/docs/cli/package.html
Cuando finalice, tendrá un archivo package.box.
3- Copie todos estos archivos (/ config, / database, Vagrantfile, package.box, etc.) y péguelos en su computadora 2 justo donde desea instalar su máquina virtual (en mi caso D: / VVV).
Ahora tiene una copia de todo lo que necesita en su computadora 2 host.
4- ejecutar esto: vagrant box add package.box --name VVV
(El nombre - se usa para nombrar su máquina virtual. En mi caso se llama VVV) (Puede usar --force si ya tiene una máquina virtual con este nombre y desea sobrescribirla. (¡Utilícela con cuidado!))
Esto descompactará su nueva máquina virtual vagabunda.
5- Cuando esté terminado, ejecuta: vagrant up
La máquina se instalará y debería verla en el "Administrador de la máquina virtual de Oracle". Si no puede ver la máquina virtual, intente ejecutar el cuadro de Oracle VM como administrador (clic derecho -> Ejecutar como administrador)
Ahora puede tener todo bien, pero recuerde ver si sus hosts son como esperaba:
c:/windows/system32/hosts
6- Tal vez sea una buena idea copiar el archivo de su host de su Computadora 1 a su Computadora 2. O copie las líneas que necesita. En mi caso, estos son los hosts que necesito:
192.168.50.4 test.dev
192.168.50.4 vvv.dev
...
Donde el 192.168.50.4 es el IP de mi máquina virtual y test.dev y vvv.dev están desarrollando hosts.
Espero que esto te pueda ayudar :) Estaré contento si le das tu opinión.
Algunas particularidades de mi caso que puede encontrar:
Cuando ejecuté vagabundo, había un problema con mysql, no funcionaba. Tuve que ejecutar en el servidor virtual (haga clic derecho en la máquina virtual de Oracle -> Mostrar consola): apt-get install mysql-server
Después de esto, corrí de nuevo vagabundo y todo estaba funcionando pero sin datos en las bases de datos. Así que hice un mysqldump all-tables desde la computadora 1 y lo cargué a la computadora 2.
OTRAS NOTAS: Mi máquina virtual no está exactamente en la Computadora 1 y la Computadora 2. Por ejemplo, hace algún tiempo hice una configuración interna para usar NFS (para acelerar las carpetas de sincronización del servidor) y necesitaba ejecutar nuevamente este comando en la Computadora 2 host: vagrant plugin install vagrant-winnfsd
Tienes dos formas de hacer esto, lo llamaré sucio y limpio :
1. La manera sucia
Cree un recuadro a partir de su entorno virtual actual, utilizando el comando vagrant package
:
http://docs.vagrantup.com/v2/cli/package.html
Luego copie la caja a la otra PC, agréguela usando la vagrant box add
y ejecútela usando vagrant up
como es habitual.
Tenga en cuenta que los archivos en su directorio de trabajo (el que tiene el Vagrantfile
) se comparten cuando se inicia la máquina virtual, por lo que también debe copiarlos en la otra PC.
2. La manera limpia
Teóricamente, nunca debería ser necesario exportar / importar con Vagrant. Si tiene la previsión de utilizar el aprovisionamiento para configurar el entorno virtual (chef, puppet, ansible) y un sistema de control de versiones como git para su directorio de trabajo, en este momento copiar un entorno sería tan simple como ejecutarlo:
git clone <your_repo>
vagrant up