Возможно ли, чтобы Vagrant использовал ОС .ISO установить образ напрямую/или создать коробку Vagrant из ISO на лету?

Можно ли автоматизировать создание файла Vagrant.box для установки ОС с исходного ISO?

Для меня это значительный пробел в сквозной автоматизации установки и настройки операционной системы на виртуальной машине, предоставляемой Vagrant.

Конечно, VagrantBox.es предоставляет множество базовых ОС для установки ОС .box. Но некоторые из них принадлежат сторонним поставщикам, а не оригинальным производителям дистрибутивов. Например, Arch Linux: Arch Linux 64 (2012-07-02) http://vagrant.pouss.in/archlinux_2012-07-02.box

Не желая отрицательно относиться к усилиям сторонних поставщиков, но некоторым организациям может потребоваться исходный установочный образ от исходного поставщика ОС (например, для примера выше, это будет: https://www.archlinux.org/download/). Причинами для захоронения исходного образа установки были бы безопасность (так как было бы невозможно проверить сторонний образ для компрометаций и вредоносных программ безопасности) и получить изображение в качестве исходных поставщиков, не требующих дополнительных материалов. Другая причина заключалась бы в том, чтобы использовать преимущества новых выпусков непосредственно у исходного поставщика и не ждать, пока третья сторона выпустит ее как бродяга .box

Существуют руководства для создания файла .box из образа .ISO:

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

Итак, я бы посмотрел здесь из окончательного ответа, в котором описывается, как сделать универсальную автоматизацию script для преобразования установочного образа ОС .ISO в поле Vagrant.

Ответ 1

Я думаю, что VeeWee предоставляет отличный механизм для подготовки коробки Vagrant из ISO:

https://github.com/jedi4ever/veewee

Он уже предоставляет множество готовых шаблонов для большинства дистрибутивов, которые вы можете настроить при необходимости (хотя это часто не требуется). В качестве альтернативы вы можете создавать свои собственные определения.

В качестве альтернативы вы можете использовать упаковщик:

https://packer.io/

Что производится той же компанией, которая делает Vagrant, поэтому имеет довольно хорошую интеграцию. Я думаю, что сам упаковщик не предоставил образцы шаблонов, но вы можете использовать те, которые Puppet Labs использует для собственных целей тестирования, если хотите:

https://github.com/puppetlabs/puppetlabs-packer

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