Skopiuj vagrant box lokalnie

27

Mam Vagrant Box działający na VirtualBox i muszę wykonać kopię (z całą istniejącą konfiguracją i danymi), aby móc na nim dokonywać zmian bez wpływu na oryginał.

Problem polega na tym, że moje oryginalne pudełko pojawiło się jako pakiet plików - połączenie internetowe, z którym pracuję, jest bardzo wolne, więc ktoś inny skopiował foldery Vagrant i Virtualbox na moją maszynę. Zatem nie ma

config.vm.box_url

używać.

Jak mogę to osiągnąć?

Edycja: Używam Vagrant 1.2.2

Xiankai
źródło

Odpowiedzi:

41

Utwórz nowe pole z istniejącego VM:

  • cd do katalogu z plikiem Vagrant

  • uruchom vagrant packageSpowoduje to domyślny eksport pliku skrzynki o nazwie package.box

  • uruchom, vagrant box add foo package.boxaby dodać pakiet.box do istniejących skrzynek. (Zakładając, że używasz VirtualBox, a nie VMWare)

  • uruchom, vagrant box listaby sprawdzić, czy został dodany.

Teraz możesz po prostu utworzyć nowy folder, uruchomić vagrant initnormalnie i ustawić następujące pole:

 config.vm.box = "foo"

Nowa maszyna wirtualna uruchomi się z dokładnymi danymi, które były obecne w poprzedniej maszynie wirtualnej.

Vagrant Documentation


Dodatkowo sprawdź nowy produkt od twórców Vagrant o nazwie Packer . Robi to samo, ale pozwala kopiować pliki vm do innych dostawców (Amazon, VirtualBox itp.)

Aktualizacja

Nowsze wersje Vagrant mają dwa polecenia, które sprawiają, że powyższe kroki są niepotrzebne.

vagrant share
vagrant package

Vagrant shareprześle twoje pudełko do atlasu
Vagrant package automatycznie utworzy plik .box.

Aby uzyskać więcej informacji, wpisz vagrant --help

Spuder
źródło
Wydaje się, że to świetny sposób, ale niestety używam innej wersji włóczęgi, podczas gdy twoje polecenia wydają się być dla 1.0.x
xiankai
@xiankai Korzystam z wersji 1.2.2 i sprawdziłem, czy te kroki działają dla mnie. Zrobiłem kilka drobnych poprawek w mojej odpowiedzi dla jasności, spróbuj jeszcze raz i daj mi znać, jakie błędy masz.
spuder
Ach, po zapoznaniu się z linkiem, który opublikowałeś, spróbowałem vagrant packagezamiast vagrant box packagei wydaje się, że jestem teraz na dobrej drodze!
xiankai
błędne opakowanie jest poprawne. To była literówka z mojej strony.
spuder