Как упаковать существующую виртуальную машину, которая не была создана с помощью команды vagrant up?
Я установил VirtualBox, а затем установил в нем базовую ОС сервера Ubuntu 12.10. Я установил в нем все виды пакетов php и другие пакеты. Мои друзья рекомендовали мне использовать Vagrant, чтобы я мог легко поделиться своими настройками с моими товарищами по команде.
Поскольку моя текущая виртуальная виртуальная машина VirtualBox не была создана с помощью vagrant up
, я не уверен, как ее упаковать. документация в Vagrant рассказывает об упаковке, но начинается с того, что:
Прежде чем работать с остальной частью этой страницы, убедитесь, что виртуальная окружающая среда строится путем запуска бродяги вверх.
В моем случае моя существующая виртуальная машина НЕ была создана изначально, используя бродячие вверх.
Как мне упаковать существующую виртуальную машину?
Ответы
Ответ 1
Важное значение для реализации (и бродячие документы не слишком ясны) заключается в том, что существует два "вкуса" упаковки:
- руководство по упаковке в начале работы, вы имеете в виду, что вы начали с бродячего базового блока и инициализировали его с помощью
vagrant up
, которого у вас нет. Это позволяет упаковывать любые настройки, которые вы внесли в бродячую базовую коробку.
- Если вы начинаете с нуля или из "простой" виртуальной виртуальной виртуальной машины, как и вы, вам нужно создать бродячий базовый блок. Вам должно быть хорошо следовать руководству , которое основано на Ubuntu.
Там подробное руководство по созданию бранных коробок с нуля с использованием Oracle Enterprise Linux, что может быть полезно. Вы также можете попробовать VeeWee.
В качестве альтернативы вы можете начать с базового блока Ubuntu 12.10 и перенести свои настройки, и в этом случае вы можете использовать более простой первый способ упаковки.
Update
Вышеупомянутое относится к Vagrant 1.0. В 1.1 все изменилось немного, и, в частности, документы были переписаны:
Ответ 2
vagrant package --outbox box_name.box --base "vm имя машины" --vagrantfile Vagrantfile
Убедитесь, что параметры перенаправления портов и SSH установлены правильно.
Это может быть хорошим примером: https://github.com/okfn/ckan/wiki/How-to-Create-a-CentOS-Vagrant-Base-Box
Ответ 3
Любой VirtualBox может быть упакован в базовые боксы Vagrant (в основном OVA с Vagrantfile
).
Проблемы: виртуальная машина не создается в соответствии с бранными базовыми полями, если вы не используете ее на vagrantbox.es, тогда все будет хорошо.
Просто установите брандмауэр (через gem или установщик), запустите следующую команду в папке VM, чтобы упаковать ее в .box
ПРИМЕЧАНИЕ. Для Vagrant 1.2.x рекомендуемый способ установки использует пакет, специфичный для ОС. Ruby Gem НЕ доступен для 1.2.x.
vagrant package --base ubuntu --output /path/to/ubuntu.box
Помните, что если вы хотите разделить бродячую базу с другими, лучше читать документы и следовать этим правилам, чтобы сделать ее проще для других.
Ответ 4
Хотя не полный ответ, я думаю, вы можете получить то, что вам нужно из документации, которая довольно обширна. Я считаю, что vagrant up
- просто удобное средство для создания бродячего "ящика". Существует ряд требований к коробке, которая соответствует требованиям Vagrant. Они описаны здесь...
Документация: Vagrant - Base Boxes
Голые кости, необходимые для коробки, следующие:
- Пользовательские дополнения VirtualBox для общих папок, переадресация портов и т.д.
- SSH с поддержкой авторизации на основе ключа для пользователя-бродяги
- Ruby и RubyGems для установки Chef and Puppet
- Шеф-повар и кукольный домик для поддержки поддержки
Как только поле соответствует этим требованиям, просто нужно использовать команду vagrant package
для создания переносимой установки...
Дополнительная документация: Vagrant - Boxes
Итак, хотя у меня нет полного ответа, так как я никогда не делал этого, я думаю, что можно установить вашу установку в состояние, которое позволит вам упаковать и распространять его.
Ответ 5
Лично, иллюзорным аспектом процесса упаковки был переключатель --base
. Я подозреваю, что это может случиться с большим количеством людей. Ознакомьтесь с vagrant package --help
для описания. Документация также не упоминает об этом.
Я нашел эти два великих, углубленных пошаговых руководства для создания ящиков для бродяг с машин, которые изначально были машинами VirtualBox:
Ответ 6
Используйте команду "VBoxManage list vms"! Я использовал ее с sudo только для того, чтобы увидеть, что VMS не указана. Используйте эту команду с правильным аутентифицированным пользователем. Ответы выше также помогли сделать это.
Ответ 7
Как упоминалось здесь - http://sysadm.pp.ua/linux/sistemy-virtualizacii/vagrant-box-creation.html
Вам нужно три вещи для коробки, которые нужно импортировать и упаковать:
- Установить гостевые дополнения
- Без пароля sudo
- Доступ к SSH
Таким образом, вам просто нужно войти в свой Ubuntu 12.10, установить дополнения для Vbox Guest, добавить пользователя "бродяга" с помощью пароля sudo без пароля.
Ответ 8
Посмотрите обновленную документацию, чтобы найти все характеристики, которые ваша коробка должна иметь, если вы хотите, чтобы она работала без проблем с бродягой:
http://docs.vagrantup.com/v2/virtualbox/boxes.html
Вы также должны взглянуть на отличный проект под названием veewee, который позволяет вам script генерировать бродячую коробку из scractch. Это означает, что veewee фактически загрузит ISO из вашего дистрибутива и установит его на виртуальную виртуальную машину, а затем настроит и установит все зависимости.
Он поставляется с множеством рецептов для всех видов дистрибутива Linux:
https://github.com/jedi4ever/veewee
Здесь еще больше ящиков. Говорят, что они кукольные коробки, но они работают со всеми провайдерами (шеф-повар, марионетка и оболочка script):
https://github.com/puppetlabs/puppet-vagrant-boxes
Ответ 9
Руководство по упаковке в разделе "Начало работы", на которое вы ссылаетесь, предполагает, что вы начали с бродячего базового блока и инициализировали его с помощью бродяги, чего у вас нет. Это позволяет вам упаковывать любые настройки, которые вы внесли в бродячую базовую коробку.
Если вы начинаете с нуля или из "простой" VirtualBox
VM, как и вы, вам нужно создать бродячий базовый ящик. Вы должны хорошо следовать руководству, основанному на Ubuntu.