У нас есть сервер Ubuntu 10.04, на котором очень хорошо работает KVM, но возникли проблемы с поиском самого чистого (и самого быстрого) способа автоматической установки 10.04 гостей.
Требования:
Должен использовать тома LVM для хранения гостей (без преобразования qemu-img или чего-то подобного)
Должен использовать virtio для сетевого и дискового хранилища (желательно без взлома XML-файлов)
Должен используйте локальное зеркало - так быстро (например, <5 минут)
Действительно очень хочу он должен быть полностью автоматизированным и не интерактивным. (т.е. начните, и через несколько минут заработает функциональная система)
Бы лайк чтобы иметь возможность указать IP-адрес при запуске, чтобы его было легко получить, не глядя на сервер DHCP.
Бы лайк чтобы иметь возможность указывать разные ароматы / дистрибутивы / версии и т. д.
Опция 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