virtual-machine - create - vagrant up
¿Dónde descarga Vagrant sus archivos.box? (7)
¿Qué sucede con el archivo .box después de ejecutar el siguiente comando?
vagrant box add lucid32 http://files.vagrantup.com/lucid32.box
No puedo encontrar el archivo lucid32.box
en el sistema de archivos después de que se haya completado la descarga.
@Luke Peterson: hay una forma más sencilla de obtener un archivo .box.
Simplemente vaya a https://atlas.hashicorp.com/boxes/search , busque el cuadro que desea descargar. Observe la URL de la caja, por ejemplo:
https://atlas.hashicorp.com/ ubuntu / boxes / trusty64 / versiones / 20150530.0.1
Luego puedes descargar este cuadro usando una URL como esta:
https://vagrantcloud.com/ ubuntu / boxes / trusty64 / versions / 20150530.0.1 /providers/virtualbox.box
Probé y descargué con éxito todas las cajas que necesito. Espero que la ayuda.
Además de
Mac:
~/.vagrant.d/
Windows:
C:/Users/%userprofile%/.vagrant.d/boxes
Tiene que eliminar los archivos en VirtualBox / OtherVMprovider para hacer un inicio limpio.
Como se menciona en los documentos , las cajas se almacenan en:
- Mac OS X y Linux:
~/.vagrant.d/boxes
- Windows:
C:/Users/USERNAME/.vagrant.d/boxes
En Windows, la ubicación se puede encontrar aquí. No encontré ninguna documentación en Internet para esto, y esto no fue inmediatamente obvio para mí:
C:/Users//{username}//.vagrant.d/boxes
En el sistema Mac / Linux, las cajas descargadas con éxito se encuentran en:
~/.vagrant.d/boxes
y las cajas sin éxito se encuentran en:
~/.vagrant.d/tmp
En los sistemas Windows se encuentra en la carpeta Usuarios:
C:/Users/%userprofile%/.vagrant.d/boxes
Espero que esto ayude. Gracias
Para cambiar la ruta, puede establecer una nueva ruta a una variable de entorno llamada: VAGRANT_HOME
export VAGRANT_HOME=my/new/path/goes/here/
Tal vez sea bueno si quieres tener esas imágenes vagabundas en otro disco duro.
Más información aquí en las Documentaciones: http://docs.vagrantup.com/v2/other/environmental-variables.html
Vagrant elimina el archivo .box
real una vez que se completa la descarga y la instalación de la caja. Como se mencionó en otras respuestas, mientras se descarga, el archivo .box se almacena como:
~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
donde el nombre del archivo es ''cuadro'' seguido de un hash hexadecimal de 40 bytes. Un archivo temporal en mi sistema, por ejemplo, es:
~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f
Por lo que puedo decir, este archivo nunca se guarda con una extensión *.box
, lo que explica por qué las búsquedas anteriores no pudieron localizarlo. Hay dos formas de recuperar el archivo de caja real:
Descargue el archivo .box desde vagrantcloud.com
- Encuentra la caja que te interesa en el atlas . Por ejemplo, https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
- Reemplace el nombre de dominio con
vagrantcloud.com
. Entonces https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1 convierte en https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box . - Agregue
/providers/virtualbox.box
al final de esa URL. Entonces https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1 convierte en https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box - Guarde el archivo .box
- Utilice el .box como desee, por ejemplo, alojándolo usted mismo y apuntando
config.vm.box_url
a la URL. O
Obtener el .box directamente de Vagrant
Esto requiere que modifique la fuente de ruby para evitar que Vagrant elimine el cuadro después de la descarga exitosa.
- Localice el archivo box_add.rb en su directorio de instalación de Vagrant. En mi sistema, se encuentra en
/Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
- Encuentra la función box_add. Dentro de la función
box_add
, hay un bloque que dice:asegúrese # Asegúrese de que eliminemos el archivo temporal después de agregarlo, # a menos que hayamos sido interrumpidos, en cuyo caso lo mantendremos alrededor # para que podamos reanudar la descarga más adelante. if! @download_interrupted @ logger.debug ("Eliminando el cuadro temporal: # {box_url}") comienza box_url.delete si box_url rescue Errno :: ENOENT # No es un gran problema, el archivo temporal no puede existir. end end
- Comenta este bloque.
- Agregue otro cuadro usando
vagrant add box <boxname>
. - Espera a que se descargue. Puede verlo guardarlo en el directorio
~/.vagrant.d/tmp/
como un archivo deboxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
. - Renombra el archivo a algo más útil. Por ejemplo,
mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box
.
- Localice el archivo box_add.rb en su directorio de instalación de Vagrant. En mi sistema, se encuentra en
Por qué querrías esto?
Para mí, esto ha sido útil para recuperar el archivo .box, por lo que se puede alojar en una infraestructura local y rápida, en lugar de descargarlo del catálogo de cajas Atlas de HashiCorp u otro proveedor de cajas .
Esto realmente debería ser parte de la funcionalidad predeterminada de Vagrant ya que tiene un caso de uso muy definitivo.