Создание образа упаковщика из предварительно загруженного бродячего бокса

Я загрузил бродячий ящик Ubuntu 64 Trust для бродяги и запустил его, и он отлично работает.

vagrant box add /local/path/to/downloaded/box.box
vagrant init
vagrant up
vagrant ssh

Я обязательно использовал сценарий для обновления системы, создания пользователей, включения переадресации портов, генерации ключей ssh, установки зависимостей и т. Д. При запуске из самого файла Vagrant. Он также копирует веб-приложение flask и postgres из моей локальной среды на бродячую машину для запуска на apache, и все работает нормально. наконец упаковал коробку вручную, используя:

vagrant package --base box-name

Только тогда я узнал о Пакере. (лицо ладонью)

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

Но все примеры и документы связаны с загрузкой ISO-образа Ubuntu, его настройкой в ​​соответствии с шаблоном и преобразованием в развертываемый образ платформы для Amazon, Digital Ocean, Google, azure и т. Д. И т. Д. И, наконец, для использования пост-обработки. превратить его в бродячий ящик.

Они не говорят об использовании предварительно загруженного бродячего бокса, чтобы сделать то же самое. Мой вопрос: можно ли использовать предварительно загруженный бродячий ящик вместе с упаковщиком для создания образа машины для платформ, которые поддерживаются Amazon, azure и т. Д.?

Если да, то как я могу это сделать?


person Rahul Raghunath    schedule 17.09.2016    source источник


Ответы (2)


Как упоминал Фредерик, можно использовать компоновщики virtualbox-ovf / vmware-vmx, чтобы использовать существующую виртуальную машину в качестве входных данных для Packer, запустить подготовку и затем вывести новое поле. Для вашего варианта использования вы можете использовать один из этих построителей и установить переменную source_path в файл ovf / vmx, связанный с блоком, с которого вы хотите начать.

Например, если вы добавили официальный ящик Ubuntu Trusty, используя:

vagrant box add ubuntu/trusty64

у вас должен получиться файл ovf, который вы можете использовать в переменной source_path вашего конструктора virtualbox-ovf в следующем месте:

$HOME/.vagrant.d/boxes/ubuntu-VAGRANTSLASH-trusty64/20160908.0.0/virtualbox/box.ovf

Примечания:

  • Мы используем описанный выше процесс с построителем vmware-vmx, но я не тестировал его с помощью построителя virtualbox-ovf. Насколько я понимаю, они работают аналогично.
  • В приведенном выше примере используется официальный ящик от Atlas, но вы сможете найти аналогичную структуру каталогов в ~/.vagrant.d/boxes/ для любых локальных ящиков, которые вы уже загрузили.
  • Путь к ovf изменится, когда будут выпущены новые ящики, но при необходимости нетрудно создать сценарий или вручную обновить путь к новой версии.
person mvermaes    schedule 18.09.2016

Вы не можете использовать существующий бродячий ящик в качестве входа для сборщика упаковщиков. Наряду с новыми версиями упаковщик добавил много нового компоновщика, чтобы вы могли создать новый образ упаковщика из существующего виртуальная виртуальная машина, для amazon вы можете вводить данные как существующий EBS диск, существующий экземпляр Amazon или amazon chroot и т. д. и т. д. проверьте упаковщик документ для разработчиков

person Frederic Henri    schedule 17.09.2016