Как упаковать существующую виртуальную машину, которая не была создана с помощью команды 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.