Kopieren Sie die vagrant box lokal

27

Ich habe eine Vagrant-Box, die auf VirtualBox ausgeführt wird, und ich muss eine Kopie (mit allen vorhandenen Konfigurationen und Daten) erstellen, damit ich Änderungen daran vornehmen kann, ohne dass sich dies auf das Original auswirkt.

Das Problem ist, dass meine Originalverpackung als Dateipaket geliefert wurde - die Internetverbindung, mit der ich arbeite, ist extrem langsam, sodass jemand anderes seine Vagrant- und Virtualbox-Ordner auf meinen Computer kopiert hat. Also gibt es keine

config.vm.box_url

benutzen.

Wie kann ich das erreichen?

Bearbeiten: Ich verwende Vagrant 1.2.2

xiankai
quelle

Antworten:

41

Erstellen Sie eine neue Box aus Ihrer vorhandenen VM:

  • CD in das Verzeichnis mit Ihrer Vagrant-Datei

  • run vagrant packageDies exportiert standardmäßig eine Box-Datei mit dem Namen package.box

  • Führen vagrant box add foo package.boxSie den Befehl aus, um package.box zu Ihren vorhandenen Boxen hinzuzufügen. (Angenommen, Sie verwenden VirtualBox und nicht VMWare)

  • Ausführen vagrant box list, um zu überprüfen, ob es hinzugefügt wurde.

Jetzt können Sie einfach einen neuen Ordner erstellen, vagrant initwie gewohnt ausführen und Ihre Box auf Folgendes einstellen:

 config.vm.box = "foo"

Die neue VM wird mit den genauen Daten hochgefahren, die in der vorherigen VM vorhanden waren.

Vagrant-Dokumentation


Außerdem können Sie ein neues Produkt von den Entwicklern von Vagrant, Packer, erwerben . Es wird das gleiche tun, aber Sie können Ihre VMs auf andere Anbieter kopieren (Amazon, VirtualBox ect ..)

Aktualisieren

Neuere Versionen von Vagrant verfügen über zwei Befehle, die die obigen Schritte überflüssig machen.

vagrant share
vagrant package

Vagrant shareLädt Ihre Box zu Atlas
Vagrant package hoch, erstellt automatisch eine .box-Datei.

Für weitere Informationen geben Sie ein vagrant --help

Spuder
quelle
Scheint eine großartige Möglichkeit zu sein, aber leider verwende ich eine andere Version von Vagrant, während Ihre Befehle für 1.0.x
xiankai
@ xiankai Ich verwende 1.2.2 und habe überprüft, dass diese Schritte für mich funktionieren. Ich habe meine Antwort aus Gründen der Klarheit ein paar Mal geändert, es noch einmal versucht und mich über die aufgetretenen Fehler informiert.
Spuder
Ah, nachdem ich mir den Link angesehen habe, den du gepostet hast, habe ich es vagrant packagestattdessen versucht vagrant box packageund es scheint, als ob ich jetzt auf dem richtigen Weg bin!
Xiankai
Vagabundpaket ist korrekt. Das war ein Tippfehler von meiner Seite.
Spuder