Как экспортировать виртуальную машину 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.
я исправил их С этим решение.
Это на самом деле довольно просто
- установить виртуальный бокс и залетный на удаленной машине
-
заверните свою бродячую машину
vagrant package --base [machine name as it shows in virtual box] --output /Users/myuser/Documents/Workspace/my.box
скопировать окно к удаленному
-
init поле на удаленной машине, запустив
vagrant init [machine name as it shows in virtual box] /Users/myuser/Documents/Workspace/my.box
выполнить
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