Как неинтерактивно подготовить виртуальные машины 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...
Конфигурация экземпляров машины обрабатывается по-разному:
- Машинные контейнеры - используйте профили LXD
- Виртуальные машины -
cloud-init
для начальной настройки сети и пользовательских данных
Если вы хотите использовать различные варианты ОС, тогда все будет немного сложнее....