Как экспортировать виртуальную машину Vagrant для ее передачи

У меня есть бродячая коробка и работает (настроена со стеком лампы). Мне нужно перенести его на другой компьютер. Как я могу экспортировать его? Я думаю, что могу получить файл (или файлы), который можно скопировать на другой компьютер, чтобы я мог запустить некоторую команду для импорта коробки vagrant.

6 ответов


у вас есть два способа сделать это, я назову его грязным способом и чисто:

1. The грязный путь

создайте окно из текущей виртуальной среды, используя :

http://docs.vagrantup.com/v2/cli/package.html

затем скопируйте поле на другой компьютер, добавьте его с помощью vagrant box add и запустите его с помощью vagrant up как обычно.

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

2. The очистить путь

теоретически никогда не должно быть необходимости делать экспорт / импорт с Vagrant. Если у вас есть возможность использовать подготовку для настройки виртуальной среды (chef, puppet, ansible) и системы управления версиями, такой как git для вашего рабочего каталога, копирование среды на этом этапе будет простым, как запуск:

git clone <your_repo>
vagrant up

мой жесткий диск в моем Mac издавал звуковой сигнал в середине проекта, поэтому я решил установить SSD. Мне нужно было переместить проект с одного диска на другой. Несколько вещей, чтобы рассмотреть:

  • я бродяга с 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.

enter image description here

я исправил их С этим решение.


Это на самом деле довольно просто

  1. установить виртуальный бокс и залетный на удаленной машине
  2. заверните свою бродячую машину

    vagrant package --base [machine name as it shows in virtual box] --output /Users/myuser/Documents/Workspace/my.box

  3. скопировать окно к удаленному

  4. init поле на удаленной машине, запустив

    vagrant init [machine name as it shows in virtual box] /Users/myuser/Documents/Workspace/my.box

  5. выполнить vagrant up


самый простой способ-упаковать коробку Vagrant, а затем скопировать (например,scp или rsync) это на другой компьютер, добавьте его и vagrant up ;-)

для подробных шагов, проверьте это => есть ли способ клонировать коробку vagrant, которая уже установлена


Как говорится в

как я могу изменить, где Бродяга ищет свой виртуальный жесткий диск?

состояние виртуальной машины хранится в предопределенной папке VirtualBox. Копирование соответствующей машины (папки) помимо вашего проекта vagrant на другой хост должно сохранить состояние вашей виртуальной машины.


ни один из вышеперечисленных ответов работал для меня. Я 2 дня разрабатывал способ переноса машины Vagrant + VirtualBox с компьютера на другой... Это возможно!

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

что нужно делать:

1-Откройте CMD вашего компьютера 1 хост машина!--16--> (командной строки. Откройте его как Adminitrator Правой Кнопкой - > "Запуск от имени администратора") и перейдите к установленным файлам vagrant. По моему делу: 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

когда finnished, вы будете иметь пакет.файл Box.

3 - скопируйте все эти файлы (/config, / database, Vagrantfile, package.коробка, etc.) и вставьте их на свой компьютер 2 только там, где вы хотите установить свою виртуальную машину (в моем случае D:/VVV).

теперь у вас есть скопировать все необходимое на компьютер, 2 хозяина.

4 - запустите этого: vagrant box add package.box --name VVV

(имя --используется для имени виртуальной машины. В моем случае это называется VVV) (Вы можете использовать --force, если у вас уже есть виртуальная машина с этим именем и вы хотите ее перезаписать. (Используйте осторожно !))

это распакует вашу новую виртуальную машину vagrant.

5 - когда finnished, бегите: vagrant up

машина установите, и вы должны увидеть его в "Oracle virtual machine box manager". Если вы не видите виртуальную машину, попробуйте запустить окно Oracle VM от имени администратора (щелкните правой кнопкой мыши -> Запуск от имени администратора)

теперь у вас может быть все в порядке, но не забудьте посмотреть, если ваши хосты, как вы ожидали:

c:/windows/system32/hosts

6 - может быть, это хорошая идея, чтобы скопировать файл host с компьютера 1 на компьютер 2. Или скопируйте нужные строки. В моем случае это хосты I нужно:

192.168.50.4 test.dev
192.168.50.4 vvv.dev
...

где 192.168.50.4-это IP-адрес моей виртуальной машины и тест.dev и vvv.dev разрабатывают хосты.

Я надеюсь, это может помочь вам :) я буду рад, если вы обратная связь перейти.

некоторые особенности моего случая, которые вы можете найти:

когда я запустил vagrant, возникла проблема с mysql, она не работала. Мне пришлось работать на виртуальном сервере (щелкните правой кнопкой мыши на виртуальной машине oracle - > показать консоль): apt-get install mysql-server

после этого я снова побежал, и все работало, но без данных в базах данных. Поэтому я сделал mysqldump all-tables с компьютера 1 и загрузил их на компьютер 2.

ДРУГИЕ ПРИМЕЧАНИЯ: Моя виртуальная машина не совсем на компьютер 1 и компьютер 2. Например, я сделал некоторое время назад внутреннюю конфигурацию для использования NFS (для ускорения папок синхронизации сервера), и мне нужно было снова запустить эту команду на хосте компьютера 2: vagrant plugin install vagrant-winnfsd