web-dev-qa-db-fra.com

Où est-ce que Vagrant télécharge 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 dans le système de fichiers une fois le téléchargement terminé.

241
Calvin Cheng

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
356
manojlds

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

~/.vagrant.d/boxes

et les cases non retenues sont situées à:

~/.vagrant.d/tmp

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

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

J'espère que cela aidera. Merci

67
Arbab Nazar

Pour changer le chemin, vous pouvez définir un nouveau chemin sur 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 vagabondes sur un autre disque dur.

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

43
suther

Le fichier .box actuel est supprimé par Vagrant une fois le téléchargement et l'installation de la boîte terminés. Comme mentionné dans d'autres réponses, lors du téléchargement, le fichier .box est stocké comme suit:

~/.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

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

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

    1. Trouvez la boîte qui vous intéresse sur the atlas . Par exemple, https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
    2. Remplacez le nom de domaine par vagrantcloud.com. So 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. So https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1 devient https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/providers/virtualbox .boîte
    4. Enregistrez le fichier .box
    5. Utilisez la boîte de dialogue à votre guise, par exemple, en l’hébergeant vous-même et en pointant config.vm.box_url vers l’URL. OU
  2. Récupère le .box directement de Vagrant

    Cela nécessite que vous modifiiez 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 Vagrant. Sur mon système, il se trouve à /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 se lit comme suit:

      assurer # Assurez-vous de supprimer le fichier temporaire après l'avoir ajouté, # à moins que nous ne soyons interrompus, auquel cas nous le gardons # afin que nous puissions reprendre le téléchargement plus tard . if !@download_interrupted @ logger.debug ("Suppression de la boîte temporaire: # {box_url}") commencer box_url.delete si box_url rescue Errno :: ENOENT # Pas grave, le fichier temporaire peut ne pas exister fin fin

    3. Commentez ce blocage.
    4. Ajoutez une autre boîte en utilisant vagrant add box <boxname>.
    5. Attendez que le fichier soit téléchargé . Vous pouvez le regarder enregistrer dans le répertoire ~/.vagrant.d/tmp/ sous forme de 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, par opposition au téléchargement depuis le catalogue de boîtes Atlas de HashiCorp ou un autre fournisseur de boîtes .

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

20
Luke Peterson

@ Luke Peterson: Il existe un moyen plus simple d'obtenir un fichier .box.

Allez simplement à https://atlas.hashicorp.com/boxes/search , recherchez le fichier 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 une 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 cette aide.

13
Hiep Ho

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

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

6
Mark Liu

Sous Windows 10 avec Vagrant 2.2.2, la définition de la variable d'environnement VAGRANT_HOME garantit le téléchargement des boîtes dans un sous-dossier du dossier spécifié pour VAGRANT_HOME.

Dans mon cas, je règle VAGRANT_HOME sur e:\vagrant_home et les boîtes sont stockées sous e:\vagrant_home\boxes.

Cela fonctionne pour moi.

C'est là que sont stockés les boîtes . Les machines virtuelles sont en cours de création dans le dossier configuré dans Virtual Box. Pour définir le dossier de stockage VirtualBox VM, accédez à: VirtualBox GUI --> File --> Preferences --> General --> Default Machine Folder.

0
user577736

En plus de

Mac:
~/.vagrant.d/

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

Vous devez supprimer les fichiers dans VirtualBox/OtherVMprovider pour un démarrage propre.

0
Punnerud