Où Vagrant télécharge-t-il ses fichiers .box?

Qu’advient-il du fichier .box après l’exécution de la commande suivante?

vagrant box add lucid32 http://files.vagrantup.com/lucid32.box 

Je ne trouve pas le fichier lucid32.box sur le système de fichiers une fois le téléchargement terminé.

Comme mentionné dans les documents , les boîtes sont stockées dans:

  • Mac OS X et Linux: ~/.vagrant.d/boxes
  • Windows: C:/Users/USERNAME/.vagrant.d/boxes

Sur les systèmes Mac / Linux, les boîtes téléchargées avec succès se trouvent dans:

 ~/.vagrant.d/boxes 

et les boîtes infructueuses sont situées à:

 ~/.vagrant.d/tmp 

Sur les systèmes Windows, il se trouve dans le dossier Utilisateurs:

 C:\Users\%userprofile%\.vagrant.d\boxes 

J’espère que cela aidera. Merci

Pour modifier le chemin, vous pouvez définir un nouveau chemin d’access à une variable d’environnement nommée: VAGRANT_HOME.

 export VAGRANT_HOME=my/new/path/goes/here/ 

C’est peut-être bien si vous voulez avoir ces images vagrantes sur un autre disque dur.

Plus d’informations ici dans les documentations: http://docs.vagrantup.com/v2/other/environmental-variables.html

Le fichier .box réel est supprimé par Vagrant une fois l’installation du téléchargement et de la boîte terminée. Comme mentionné dans d’autres réponses, lors du téléchargement, le fichier .box est stocké sous la forme:

 ~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 

où le nom du fichier est «box» suivi d’un hachage hexadécimal de 40 octets. Un fichier temporaire sur mon système par exemple, est:

 ~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f 

Pour autant que je *.box , ce fichier n’est jamais enregistré avec une extension *.box , ce qui explique pourquoi les recherches ci-dessus n’ont pas réussi à le localiser. Il existe deux manières de récupérer le fichier de boîte:

  1. Téléchargez le fichier .box à partir de vagrantcloud.com

    1. Trouvez la boîte qui vous intéresse sur l’atlas . Par exemple, https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
    2. Remplacez le nom de domaine par vagrantcloud.com . Ainsi, https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1 devient https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box .
    3. Ajoutez /providers/virtualbox.box à la fin de cette URL. Donc https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1 devient https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox.box
    4. Enregistrez le fichier .box
    5. Utilisez la .box comme vous le souhaitez, par exemple, en l’hébergeant vous-même et en dirigeant config.vm.box_url vers l’URL. OU
  2. Obtenez le .box directement à partir de Vagrant

    Cela vous oblige à modifier le source Ruby pour empêcher Vagrant de supprimer la boîte après un téléchargement réussi.

    1. Recherchez le fichier box_add.rb dans votre répertoire d’installation de Vagrant. Sur mon système, il se trouve dans /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
    2. Recherchez la fonction box_add. Dans la fonction box_add , il y a un bloc qui lit:

      Assurez-vous que nous supprimons le fichier temporaire après l’avoir ajouté, # sauf si nous avons été interrompus, auquel cas nous le conservons # afin que nous puissions reprendre le téléchargement ultérieurement. if! @download_interrupted @ logger.debug (“Suppression d’une boîte temporaire: # {box_url}”) begin box_url.delete si box_url sauve Errno :: ENOENT # Pas grave, le fichier temporaire n’existe peut-être pas à la fin

    3. Commentez ce bloc.
    4. Ajoutez une autre boîte en utilisant la vagrant add box .
    5. Attendez qu’il soit téléchargé. Vous pouvez le regarder dans le ~/.vagrant.d/tmp/ tant que fichier boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX .
    6. Renommez le fichier en quelque chose de plus utile. Par exemple, mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box .

Pourquoi voudriez-vous cela?

Pour moi, cela a été utile pour récupérer le fichier .box afin qu’il puisse être hébergé sur une infrastructure locale rapide au lieu d’être téléchargé à partir du catalogue de boîtes Atlas de HashiCorp ou d’ un autre fournisseur de boîtes .

Cela devrait vraiment faire partie de la fonctionnalité Vagrant par défaut car il a un cas d’utilisation très définitif.

@ Luc Peterson: Il existe un moyen plus simple d’obtenir un fichier .box.

Rendez-vous sur https://atlas.hashicorp.com/boxes/search , recherchez la case que vous souhaitez télécharger. Notez l’URL de la boîte, par exemple:

https://atlas.hashicorp.com/ ubuntu / boxes / trusty64 / versions / 20150530.0.1

Ensuite, vous pouvez télécharger cette boîte en utilisant l’URL comme ceci:

https://vagrantcloud.com/ ubuntu / boxes / trusty64 / versions / 20150530.0.1 /providers/virtualbox.box

J’ai essayé et téléchargé avec succès toutes les boîtes dont j’ai besoin. J’espère que ça aide.

Sous Windows, l’emplacement peut être trouvé ici. Je n’ai trouvé aucune documentation sur Internet pour cela, et cela ne m’a pas immédiatement semblé évident:

C:\Users\\{username}\\.vagrant.d\boxes

En plus de

 Mac: ~/.vagrant.d/ Windows: C:\Users\%userprofile%\.vagrant.d\boxes 

Vous devez supprimer les fichiers dans VirtualBox / OtherVMprovider pour prendre un bon départ.