У меня есть бродячий бокс и работает (настроен с помощью LAMP stack). Мне нужно перенести его на другой компьютер. Как я могу его экспортировать? Я предполагаю, что могу получить файл (или файлы), который можно скопировать на другой компьютер, поэтому я могу запустить некоторую команду для импорта брандмауэра.
Как экспортировать виртуальную машину Vagrant для ее переноса
Ответ 1
У вас есть два способа сделать это, я назову его грязным и чистым способом:
1. Грязный путь
Создайте окно из текущей виртуальной среды, используя команду vagrant package
:
http://docs.vagrantup.com/v2/cli/package.html
Затем скопируйте поле на другой компьютер, добавьте его с помощью vagrant box add
и запустите его с помощью vagrant up
, как обычно.
Имейте в виду, что файлы в вашем рабочем каталоге (один с Vagrantfile
) совместно используются при загрузке виртуальной машины, поэтому вам нужно также скопировать его на другой компьютер.
2. Чистый способ
Теоретически никогда не нужно делать экспорт/импорт с помощью Vagrant. Если у вас есть предусмотрительность, чтобы использовать настройку для настройки виртуальной среды (шеф-повар, марионетка, возможно) и систему управления версиями, например git для вашей рабочей директории, копирование среды было бы в этот момент простым, как работа:
git clone <your_repo>
vagrant up
Ответ 2
Мой жесткий диск на моем Mac делал звуковые сигналы в середине проекта, поэтому я решил установить SSD. Мне нужно было переместить мой проект с одного диска на другой. Несколько вещей, которые следует учитывать:
- Я vagrant w/virtualbox на Mac
- Я использую git
Это то, что сработало для меня:
1.) Copy your ~/.vagrant.d directory to your new machine.
2.) Copy your ~/VirtualBox\ VMs directory to your new machine.
3.) In VirtualBox add the machines one by one using **Machine** >> **Add**
4.) Run `vagrant box list` to see if vagrant acknowledges your machines.
5.) `git clone my_project`
6.) `vagrant up`
У меня было несколько проблем с дополнениями VB Guest.
Я установил их с помощью этого решения.
Ответ 3
Это на самом деле довольно просто
- Установите виртуальную коробку и vagrant на удаленной машине
-
Заверните свою бродячую машину
vagrant package --base [machine name as it shows in virtual box] --output/Users/myuser/Documents/Workspace/my.box
-
скопируйте коробку на свой пульт
-
Запустите окно на удаленной машине, запустив
vagrant init [machine name as it shows in virtual box]/Users/myuser/Documents/Workspace/my.box
-
Беги
vagrant up
Ответ 4
Самый простой способ - упаковать поле Vagrant и затем скопировать (например, scp
или rsync
) его на другой компьютер, добавить его и vagrant up
; -)
Подробные инструкции см. в =>
Есть ли способ клонировать установленный брандмауэр, который уже установлен
Ответ 5
Как указано в
Как я могу изменить, где Vagrant ищет свой виртуальный жесткий диск?
состояние виртуальной машины сохраняется в предопределенной папке VirtualBox. Копирование соответствующего компьютера (папки), кроме вашего бродяжного проекта на другой хост, должно сохранить ваше состояние виртуальной машины.
Ответ 6
Ни один из приведенных выше ответов не работал для меня. Я 2 дня отрабатывал способ переноса компьютера Vagrant + VirtualBox с компьютера на другой... Это возможно!
Во-первых, вы должны понимать, что виртуальная машина отделена от вашей папки sync/shared. Поэтому, когда вы упаковываете свою машину, вы упаковываете ее без файлов, но с базами данных.
Что тебе необходимо сделать:
1- Откройте CMD хост-компьютера вашего компьютера 1 (Командная строка. Откройте его как Администратор с помощью правой кнопки → "Запуск от имени администратора") и перейдите к своим установленным файлам. На мой случай: C: /VVV Вы увидите ваш Vagrantfile и эти папки:
/config/
/database/
/log/
/provision/
/www/
Vagrantfile
...
В папке /www/находится моя папка синхронизации с моими доменами разработки. Возможно, ваша папка синхронизации находится в другом месте, просто убедитесь, что понимаете, что вы делаете. Также /config и /database являются папками синхронизации.
2- выполните эту команду: vagrant package --vagrantfile Vagrantfile
(Эта команда создает пакет вашей виртуальной машины с использованием вашей конфигурации Vagrantfile.)
Вот что вы можете прочитать в документации Vagrant о команде:
Распространенным заблуждением является то, что опция --vagrantfile будет упаковывать Vagrantfile, который используется, когда vagrant init используется с этим блоком. Это не вариант. Вместо этого Vagrantfile загружается и читается как часть процесса загрузки Vagrant, когда используется окно. Для получения дополнительной информации читайте о порядке загрузки Vagrantfile.
https://www.vagrantup.com/docs/cli/package.html
Когда закончите, у вас будет файл package.box.
3- Скопируйте все эти файлы (/config,/database, Vagrantfile, package.box и т.д.) И вставьте их на свой компьютер 2 именно там, где вы хотите установить свою виртуальную машину (на моем случае D: /VVV).
Теперь у вас есть копия всего, что вам нужно на вашем компьютере 2 хоста.
4- запустите: vagrant box add package.box --name VVV
(--name используется для именования вашей виртуальной машины. В моем случае она называется VVV) (Вы можете использовать --force, если у вас уже есть виртуальная машина с этим именем и хотите перезаписать ее. (Используйте осторожно!))
Это распакует вашу новую бродячую виртуальную машину.
5- Когда закончишь, беги: vagrant up
Машина будет установлена, и вы должны увидеть ее в "Диспетчере коробок виртуальных машин Oracle". Если вы не видите виртуальную машину, попробуйте запустить Oracle VM box от имени администратора (щелкните правой кнопкой мыши → Запуск от имени администратора)
Теперь у вас все может быть в порядке, но не забудьте проверить, соответствуют ли ваши хосты ожиданиям:
c:/windows/system32/hosts
6- Может быть, неплохо скопировать файл хоста с компьютера 1 на компьютер 2. Или скопировать нужные строки. В моем случае это те хосты, которые мне нужны:
192.168.50.4 test.dev
192.168.50.4 vvv.dev
...
Где 192.168.50.4 - это IP моей Виртуальной машины, а test.dev и vvv.dev разрабатывают хосты.
Я надеюсь, что это может помочь вам :) Я буду рад, если вы оставите отзыв.
Некоторые особенности моего дела, которые вы можете найти:
Когда я запустил vagrant, была проблема с mysql, она не работала. Мне пришлось запустить на виртуальном сервере (щелкните правой кнопкой мыши на виртуальной машине оракула → Показать консоль): apt-get install mysql-server
После этого я снова побежал vagrant up и все работало, но без данных в базах данных. Поэтому я создал все таблицы mysqldump с компьютера 1 и загрузил их на компьютер 2.
ДРУГИЕ ЗАМЕЧАНИЯ: Моя виртуальная машина не совсем на Компьютере 1 и Компьютере 2. Например, я недавно выполнил внутреннюю настройку для использования NFS (для ускорения синхронизации папок сервера), и мне нужно было снова запустить эту команду на Компьютере 2 хост: vagrant plugin install vagrant-winnfsd
Ответ 7
По состоянию на 2019 год существует подкоманда: vagrant box repackage
vagrant box repackage --help
Usage: vagrant box repackage <name> <provider> <version>
-h, --help Print this help
Вы можете найти name
provider
и version
, запустив vagrant box list
vagrant box list
macinbox (virtualbox, 10.14.5)
Вывод vagrant box repackage
представляет собой файл с именем package.box
который в основном представляет собой файл tgz, содержимое которого может быть перечислено ниже:
tar tzf package.box
./metadata.json
./box.ovf
./Vagrantfile
./box-disk001.vmdk