it-swarm.com.de

Wohin lädt Vagrant seine .box-Dateien herunter?

Was passiert mit der .box-Datei, nachdem der folgende Befehl ausgeführt wurde?

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

Ich kann die Datei lucid32.box nicht im Dateisystem finden, nachdem der Download abgeschlossen ist.

241
Calvin Cheng

Wie in den docs erwähnt, werden die Boxen unter gespeichert: 

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

Auf einem Mac/Linux-System befinden sich die erfolgreich heruntergeladenen Boxen unter:

~/.vagrant.d/boxes

und erfolglose Boxen befinden sich an:

~/.vagrant.d/tmp

Auf Windows-Systemen befindet es sich im Ordner Benutzer:

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

Hoffe das wird helfen. Vielen Dank

67
Arbab Nazar

Um den Pfad zu ändern, können Sie einen neuen Pfad auf eine Umgebungsvariable mit dem Namen: VAGRANT_HOME setzen

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

Das ist vielleicht schön, wenn Sie diese Vagabunden-Images auf einer anderen Festplatte haben möchten.

Weitere Informationen hier in den Dokumentationen: http://docs.vagrantup.com/v2/other/environmental-variables.html

43
suther

Die eigentliche .box-Datei wird von Vagrant gelöscht, sobald der Download und die Box-Installation abgeschlossen sind. Wie in anderen Antworten erwähnt, wird die .box-Datei während des Herunterladens wie folgt gespeichert:

~/.vagrant.d/tmp/boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

dabei ist der Dateiname 'box' gefolgt von einem 40-Byte-Hexadezimal-Hash. Eine temporäre Datei auf meinem System lautet beispielsweise:

~/.vagrant.d/tmp/boxc74a85fe4af3197a744851517c6af4d4959db77f

Soweit ich das beurteilen kann, wird diese Datei niemals mit einer *.box-Erweiterung gespeichert. Dies erklärt, warum die obigen Suchvorgänge nicht gefunden wurden. Es gibt zwei Möglichkeiten, die tatsächliche Box-Datei abzurufen:

  1. Laden Sie die .box-Datei von vagrantcloud.com herunter

    1. Finden Sie die Box, die Sie interessiert, auf der Atlas . Zum Beispiel https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1
    2. Ersetzen Sie den Domainnamen durch vagrantcloud.com. Aus https://atlas.hashicorp.com/ubuntu/boxes/trusty64/versions/20150530.0.1 Wird https://vagrantcloud.com/ubuntu/boxes/trusty64/versions /20150530.0.1/providers/virtualbox.box .
    3. Fügen Sie am Ende dieser URL /providers/virtualbox.box hinzu. Aus https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1 wird https://vagrantcloud.com/ubuntu/boxes/trusty64/versions/20150530.0.1/ provider/virtualbox.box
    4. Speichern Sie die .box-Datei
    5. Verwenden Sie die .box nach Belieben, hosten Sie sie zum Beispiel selbst und zeigen Sie mit config.vm.box_url auf die URL. ODER
  2. Holen Sie sich die .box direkt von Vagrant

    Dazu müssen Sie die Ruby-Quelle ändern, um zu verhindern, dass Vagrant die Box nach einem erfolgreichen Download löscht.

    1. Suchen Sie die Datei box_add.rb in Ihrem Vagrant-Installationsverzeichnis. Auf meinem System befindet es sich unter /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.2/lib/vagrant/action/builtin/box_add.rb
    2. Suchen Sie die box_add-Funktion. Innerhalb der box_add-Funktion gibt es einen Block, der Folgendes liest:

      dafür sorgen # Stellen Sie sicher, dass wir die temporäre Datei löschen, nachdem wir sie hinzugefügt haben # Es sei denn, wir wurden unterbrochen. In diesem Fall behalten wir es bei # so können wir den Download später fortsetzen . wenn [email protected]_interrupted @ logger.debug ("Temporäre Box löschen: # {box_url}").) Start box_url.delete wenn box_url Rettung Errno :: ENOENT # Keine große Sache, die temporäre Datei existiert möglicherweise nicht wirklich Ende Ende

    3. Kommentiere diesen Block aus.
    4. Fügen Sie mit vagrant add box <boxname> ein weiteres Feld hinzu.
    5. Warten Sie, bis es heruntergeladen ist . Sie können es als boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-Datei im ~/.vagrant.d/tmp/-Verzeichnis speichern. 
    6. Benennen Sie die Datei in etwas nützlicheres um. ZB mv boxXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX trusty64.box.

Warum willst du das?

Für mich war dies hilfreich, um die .box-Datei abzurufen, sodass sie auf einer lokalen, schnellen Infrastruktur gehostet werden kann, anstatt aus Atlas-Katalogkatalog von HashiCorp } oder einem anderen Boxanbieter heruntergeladen zu werden.

Dies sollte wirklich Teil der Standard-Vagrant-Funktionalität sein, da es einen sehr eindeutigen Anwendungsfall hat.

20
Luke Peterson

@Luke Peterson: Es gibt einen einfacheren Weg, eine .box-Datei zu erhalten.

Gehen Sie einfach zu https://atlas.hashicorp.com/boxes/search - und suchen Sie nach der Box, die Sie herunterladen möchten. Beachten Sie die URL der Box, z. B .:

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

Dann können Sie diese Box mit folgender URL herunterladen:

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

Ich habe versucht, alle benötigten Boxen erfolgreich herunterzuladen. Hoffe das hilft.

13
Hiep Ho

Unter Windows kann der Ort hier gefunden werden. Ich habe dazu im Internet keine Dokumentation gefunden, und das war mir nicht sofort klar:

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

6
Mark Liu

Bei Windows 10 mit Vagrant 2.2.2 wird durch Festlegen der Umgebungsvariablen VAGRANT_HOME sichergestellt, dass die Boxen in einen Unterordner des für VAGRANT_HOME angegebenen Ordners heruntergeladen werden.

In meinem Fall setze ich VAGRANT_HOME auf e:\vagrant_home und die Boxen werden unter e:\vagrant_home\boxes gespeichert.

Das funktioniert für mich.

Dort werden die Boxen gespeichert. Die virtuellen Maschinen werden in dem in Virtual Box konfigurierten Ordner erstellt. Um den Speicherordner für VirtualBox VM festzulegen, gehen Sie zu: VirtualBox GUI --> File --> Preferences --> General --> Default Machine Folder.

0
user577736

Zusätzlich zu

Mac:
~/.vagrant.d/

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

Sie müssen die Dateien in VirtualBox/OtherVMprovider löschen, um einen Neustart zu erhalten.

0
Punnerud