Скопируйте бродячую коробку локально


26

У меня есть виртуальный ящик, работающий на VirtualBox, и мне нужно сделать копию (со всеми существующими настройками и данными), чтобы я мог вносить в нее изменения, не затрагивая оригинал.

Проблема в том, что моя оригинальная коробка пришла в виде файлового пакета - интернет-соединение, с которым я работаю, очень медленное, поэтому кто-то еще скопировал свои папки vagrant и virtualbox на мою машину. Таким образом, нет

config.vm.box_url

использовать.

Как я могу сделать это?

Изменить: я использую Vagrant 1.2.2

Ответы:


40

Создайте новый ящик из вашего существующего vm:

  • Перейдите в каталог с вашим файлом Vagrant

  • run vagrant packageЭто экспортирует файл коробки с именем package.box по умолчанию

  • запустить, vagrant box add foo package.boxчтобы добавить package.box в ваши существующие ящики. (Если вы используете VirtualBox, а не VMWare)

  • запустить, vagrant box listчтобы убедиться, что он был добавлен.

Теперь вы можете просто создать новую папку, запустить ее vagrant initв обычном режиме и установить в своем окне следующее:

 config.vm.box = "foo"

Новая виртуальная машина будет вращаться с точными данными, которые присутствовали в предыдущей виртуальной машине.

Бродячая документация


Дополнительно закажите новый продукт от создателей Vagrant под названием Packer . Он будет делать то же самое, но позволит вам скопировать ваши виртуальные машины другим провайдерам (Amazon, VirtualBox и т. Д.)

Обновить

В более новых версиях Vagrant есть две команды, которые делают вышеуказанные шаги ненужными.

vagrant share
vagrant package

Vagrant shareзагрузит ваш ящик в атлас,
Vagrant package автоматически создаст файл .box.

Для получения дополнительной информации введите vagrant --help


Похоже, отличный способ, но, к сожалению, я использую другую версию vagrant, в то время как ваши команды, кажется, для 1.0.x
xiankai

@xiankai Я использую 1.2.2 и проверил, что эти шаги работают для меня. Я внес несколько изменений в свой ответ для ясности, еще раз попробую и дайте мне знать, какие ошибки вы получаете.
spuder

Ах, после просмотра ссылки, которую вы разместили, я попытался vagrant packageвместо, vagrant box packageи кажется, что я сейчас на правильном пути!
Сянкай

Бродячая упаковка верна. Это была опечатка с моей стороны.
spuder
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.