26

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

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

config.vm.box_url

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

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

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

1 ответ1

39

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

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

  • 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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .