from create virtual-machine virtualbox vagrant

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:

  1. Descargue el archivo .box desde vagrantcloud.com

    1. Encuentra la caja que te interesa en el atlas . Por ejemplo, https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
    2. 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 .
    3. 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
    4. Guarde el archivo .box
    5. Utilice el .box como desee, por ejemplo, alojándolo usted mismo y apuntando config.vm.box_url a la URL. O
  2. 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.

    1. 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
    2. 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

    3. Comenta este bloque.
    4. Agregue otro cuadro usando vagrant add box <boxname> .
    5. Espera a que se descargue. Puede verlo guardarlo en el directorio ~/.vagrant.d/tmp/ como un archivo de boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .
    6. Renombra el archivo a algo más útil. Por ejemplo, mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box .

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.