Как неинтерактивно подготовить виртуальные машины Ubuntu с помощью `libvirt`?

Ранее (несколько лет назад) я использовал vmbuilder, но теперь это, кажется, не поддерживается и не может быть использовано с более новыми версиями Ubuntu.

Я также пытался vagrant с плагином vagrant-libvirt, кроме этого метода, требуется огромное количество пакетов, которые он должен установить, в конце концов он не сработал, потому что нет образов облака Ubuntu для libvirt поставщик.

Я также посмотрел на стандартный virt-installer, предоставляющий стандартный образ ISO в виде CD-ROM, но он не является неинтерактивным. Кроме того, я также столкнулся с ошибкой повсеместности во время интерактивной установки.

Итак, каков наилучший способ неинтерактивного предоставления виртуальных машин Ubuntu с помощью libvirt? Или что такое замена vmbuilder?

2 ответа

Я думаю, что вы ищете virt-builder,

Virt-builder начинается с правильно установленных шаблонов ОС для различных дистрибутивов и позволяет настраивать их, устанавливая пароль root, копируя файлы и многое другое.

Virt-builder находится в пакете libguestfs-tools.

sudo apt install libguestfs-tools

Эти основные команды должны помочь вам начать; вы можете найти более продвинутый материал на странице руководства.

Перечислите доступные шаблоны ВМ:

virt-builder --list

Создайте свежий образ Ubuntu 18.04 LTS:

virt-builder ubuntu-18.04

По умолчанию virt-builder не создает учетные записи пользователей и включает корневую учетную запись со случайным паролем, который печатается на вашем терминале при создании образа виртуальной машины. Как упоминалось ранее, вы можете изменить это с помощью различных параметров команды.

(Обратите внимание, что в отношении Ubuntu virt-builder поддерживает только UTS-релизы LTS.)

Я бы посоветовал взглянуть на uvtool, который по моему опыту работает намного лучше, чем virt-builder.

Но, учитывая, что уже не больше 2016 года, я бы порекомендовал еще больше взглянуть на современное и даже кроссплатформенное решение MultiPass. По умолчанию это вызовет qemu напрямую, но вы можете сделать так, чтобы вместо него использовался бэкэнд libvirt с

многопроходный драйвер с защелкой =LIBVIRT

Оба инструмента предоставят вам интерфейс CLI для порождения гостей на основе образов облаков Ubuntu.

В Ubuntu Land дела идут очень быстро... Начиная с Q4 2019, я буду использовать Multipass для виртуальных машин и LXD для машинных контейнеров. Идеально используя образы Ubuntu...

Конфигурация экземпляров машины обрабатывается по-разному:

  1. Машинные контейнеры - используйте профили LXD
  2. Виртуальные машины - cloud-init для начальной настройки сети и пользовательских данных

Если вы хотите использовать различные варианты ОС, тогда все будет немного сложнее....

Другие вопросы по тегам