Есть ли современный эквивалент python-vm-builder?


11

Я пытаюсь найти лучший, современный способ делать то, что я делал с python-vm-builder (он же ubuntu-vm-builder).

Мне нужен сценарий, повторяемый способ начать с чего-то вроде Ubuntu-Core (он же художник, ранее известный как JeOS ), добавить несколько пакетов, определить сценарии первого запуска и т. Д.

То, что мне нужно, это что-то вроде вращения собственного ISO (хотя это не ISO, это будет «установленная» система). Результатом должно быть ядро, образ initrd и rootfs, которые подходят для бездисковой загрузки PXE с NFS.

Какие инструменты используются, например, для создания образа сетевой загрузки Ubuntu (или любых других образов Ubuntu)? Они достаточно гибки для моих нужд?

Как насчет инструментов, используемых для создания сред новой установки, используемых для интеграционного тестирования Ubuntu? Будут ли они уместны?

Обратите внимание, что во время выполнения rootfs будет монтироваться только для чтения, поэтому я не собираюсь управлять экземпляром с течением времени. Я рассчитываю повторять автоматическую установку при каждом новом выпуске Ubuntu и периодически в течение 6 месяцев.


2
У меня нет ответа, так как я не уверен в текущем методе наилучшей практики, но это подозрительно похоже на задание для шеф-повара или марионетки, возможно, даже Бродяги.
Марко Чеппи

1
Почему vmbuilder больше не соответствует вашим потребностям? Он использует debootstrapдля создания базовой системы («chroot», который затем может быть скопирован в образ диска). Посмотрите и посмотрите, поможет ли это.
Салем,

Я думаю, что vmbuilder будет работать, но это для долгосрочной системы, поэтому я не хочу опираться на биты, которые уже мертвы в воде.
января

Ответы:


7

Вы можете напрямую использовать официальный облачный образ, а затем создать небольшой ISO-образ, используя cloud-localds(из cloud-utilsпакета), чтобы использовать его в качестве источника данных «nocloud» для cloud-init.

Затем вы можете использовать user-data cloud-init (пример) в качестве единого механизма для добавления пакетов и запуска собственных сценариев первого запуска через облачных провайдеров, которые предоставляют официальные образы Ubuntu Cloud, а также на локальных виртуальных машинах.

Если вы запускаете cloud-localdsбез параметров, он покажет пример использования для настройки и запуска виртуальной машины с использованием kvm напрямую.

Чтобы запустить виртуальную машину другим способом, просто предоставьте облачное изображение (например, загруженное с https://cloud-images.ubuntu.com/precise/current/precise-server-cloudimg-amd64-disk1.img для 12.04) в качестве первый диск, и представить вывод ISO-образа с cloud-localdsCD-ROM.

Больше информации в блоге Скотта Мозера .


1
Я не уверен, насколько это применимо, если вы хотите получить настольную систему.
Роби Басак

Благодарность! Это похоже на то, что я ищу. И эта среда не для настольной системы, кстати. Я создаю что-то вроде эфемерной среды MAAS. Он должен быть более полным, чем, скажем, одно ядро ​​Ubuntu, но я бы хотел, чтобы он был немного меньше, чем минимальная установка сервера Ubuntu.
Jderose

2

Я никогда не упаковывал ISO, поэтому я не могу комментировать из своего собственного опыта, но похоже, что ответом на ваш вопрос является Cobbler ( http://cobbler.github.com ).

Из документации сообщества Ubuntu:
«Ubuntu использует cobbler в качестве предпочтительного сервера обеспечения для компьютеров с Ubuntu». -  https://help.ubuntu.com/community/Cobbler


1
help.ubuntu.com/community/Cobbler устарел. Я только что попросил обновить его. Извините, это было пропущено раньше.
Роби Басак

1
Благодарность! Хотя я мог бы, вероятно, делать то, что я хочу с Cobbler, это кажется слишком излишним для того, к чему я стремлюсь. Я не хочу, чтобы сервис обеспечения (и сложности, которые приносят), просто очень простой инструмент обеспечения. Я ищу что-то более высокое, чем debootstrap, но все же одноразовую командную строку или инструмент API.
jderose

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.