Назад | Перейти на главную страницу

Автоматическая установка гостей Lucid на Lucid KVM Server

У нас есть сервер Ubuntu 10.04, на котором очень хорошо работает KVM, но возникли проблемы с поиском самого чистого (и самого быстрого) способа автоматической установки 10.04 гостей.

Требования:

Опция 1: Нам не нравится делать это из пользовательского интерфейса virt-manager - потому что вы должны находиться на физическом сервере (без удаленного использования virt-manager) для установки в раздел LVM. Это действительно работает, но вы должны запустить VNC и Gnome на сервере, и это не круто. Кроме того, он интерактивен, и вам нужно выбрать множество параметров, и мы все равно хотели бы писать сценарии оболочки, которые делают это в любом случае.

Вариант 2: vmbuilder из пакета python-vm-builder кажется, что это именно то, что мы хотим - потому что вы можете указать локальное зеркало (используя для этого apt-proxy), но не смогли заставить его использовать том LVM или использовать virtio для диск.

vmbuilder kvm ubuntu --suite = lucid --flavour = virtual --arch = amd64 --mirror =http://192.168.1.1:9999/ubuntu -o --libvirt = qemu: /// system --ip = 192.168.1.94 --part = vmbuilder.partition --raw = / dev / VG0 / LVtest --templates = mytemplates --firstboot = / root / vm / boot.sh --user = linuxadmin --name = linuxadmin --pass = secretpass --mem = 256 --hostname = test --bridge = br0

Это просто игнорирует эту часть --raw = и создает файл изображения qcow - и не использует virtio. Я подозреваю, что могу преобразовать файл изображения в том LVM и вручную добавить материал virtio в XML, но это кажется раздражающим и беспорядочным.

Вариант 3: Это то, что мы используем, но это не оптимально - потому что это беспорядочно, не позволяет нам указывать IP-адрес, и мы действительно не можем динамически контролировать (с помощью команды / сценария установки) некоторые параметры, которые жестко запрограммированы в файле кикстарта.

Создайте логический том вручную - затем ...

# virt-install --connect qemu: /// system -n test -r 1024 --vcpus = 1 --disk path = / dev / VG0 / LVvm-test model = virtio --pxe --vnc --noautoconsole - -os-type linux --os-variant virtio26 --accelerate --network = bridge: br0 --hvm

Это относится к серверу загрузки PXE, который указывает на локальный сервер установки с файлом кикстарта, который выполняет большую часть настройки. Он ДЕЙСТВИТЕЛЬНО использует virtio как для сети, так и для диска, так что это хорошо. Он ДЕЙСТВИТЕЛЬНО использует локальное зеркало и LVM, поэтому это означает, что он соответствует нашим минимальным требованиям, но мы бы хотели, чтобы он был на 100% автоматизирован. Прямо сейчас вам нужно подключиться к консоли VNC (через virt-manager) и выбрать «Установить» в установщике Lucid - так что это нарушит полностью автоматический процесс. И, конечно же, вы должны посмотреть в системном журнале, какой у него IP-адрес, чтобы вы могли подключиться к нему по ssh.

Конечно, мы не ЕДИНСТВЕННЫЕ, кому нужна эта функциональность !!!

Я бы выбрал вариант 2, но для этого вам придется взломать vmbuilder, потому что он не использует монтирование по UUID (и, таким образом, даже если вы измените XML-шаблон libvirt на использование virtio, vmbuilder жестко закодирует / dev / sd * в / etc / fstab); --raw должен работать, хотя - сообщите об этом, пожалуйста.

Лично я думаю об использовании комбинации virt-install (для создания виртуальной машины и инициализации ее диска) и debian-installer с PXE-загрузкой в ​​автоматическом режиме с файлом preseed.

в RHEV вы просто развертываете виртуальные машины из готового шаблона, который по сути является либо копией исходного образа шаблона, либо его снимком (для экономии места)

Я почти уверен, что если у вас есть золотой образ вашей сборки со всем, что в нем, вы можете настроить его как шаблон, и ваши скрипты просто клонируют его с помощью qemu-img или даже dd.

В шаблоне должны быть детали, специфичные для виртуальной машины, такие как удаленные ключи ssh (sys-reconfig в RHEL / Fedora, не знаю, как это сделать в Ubuntu), поэтому, когда виртуальная машина, развернутая с нее, запускается, вы получаете эти данные повторно.

Я уже сделал такую ​​систему. Я использовал загрузку PXE с файлом preseed, марионеткой и сабайоном. В результате система была установлена ​​с root passwd, некоторыми пользователями, полностью обновленным профилем пользователя, ssh, openoffice и другими.

Была проблема с sabayon и firefox.

НО! все это занимает около 5-10 минут для развертывания в моей системе.

Другой способ - просто создать несколько клонов с помощью dd и обновить их с помощью марионетки.

Как насчет того, чтобы дать Сапожнику ( https://fedorahosted.org/cobbler/ ) попробовать?

Довольно легко выбрать третий вариант и сделать автозапуск прозрачного установщика вместо того, чтобы ждать, пока вы нажмете Enter.

В нашем случае я переделываю ISO и загружаюсь с него. Просто измените файл isolinux.cfg на метку по умолчанию. По сути, это то же самое для PXE.

Затем вы можете указать что угодно (в том числе IP!), Используя файл preseed.

https://help.ubuntu.com/10.04/installation-guide/i386/preseed-using.html