Решил освоить kvm, собрал тестовый стенд(пока вожусь с одной нодой), водрузил туда debian wheezy amd64, kvm, libvirt.
Разбираюсь со всем этим. Конечно, после ксена кажется все непривычным и неправильным, хотя при ближайшем рассмотрении оказывается не таким плохим (:
Но, все же, некоторые вопросы остаются непонятыми:
первый вопрос:
автоматизированная установка debian/ubuntu(а также centos). Как?
С ксеном я пользуюсь xen-tools, он устанавливает все с помощью debootstrap либо из tar. Поддерживались готовые схемы разметки, списки пакетов. Да и конфиг тоже формирует. Что позволяло развернуть виртуалку из тарника или просто из шаблона для xen-tools(role+partitions), как говорится, в ван-клик. Конечно же, хочется иметь что-то подобное и из
Какие варианты я нашел для kvm:
Для начала более простой вариант: установка из тарника. Впрочем, не обязательно из тарника.
вот есть virt-clone. Вроде умеет то, что нужно, однако же "искаропки" не предоставляет нужный мне функционал.
Конечно, можно обвязать скриптами, реализовав недостающий функционал, сделав похожим на xen-tools:
1) обвязка к командной строке - чтобы не пришлось задавать много параметров, а только хостнейм, память, адрес имиджа.
2) изменение мака, хостнейма, в новой виртуалке
3) всякие другие хуки
В общем-то, все просто реализуется скриптами. Однако, возможно, есть какой-то инструмент, более подходящий для моих задач?
С установкой "с нуля" все обстоит сложнее
virt-install по умолчанию просто создает конфиг, том, подключает к сети, запускает инсталлер с занного iso или с http. Ежу понятно, что каждый раз инсталлить с помощью штатного инсталлера - дурацкое занятие, да и к тому же требующее доступа к графической консоли.
можно воспользоваться средствами автоматизации инсталлера, раз уж он используется для установки. Такие средства есть у дистров, которые мне нужны.
Вопрос только в том, как ими воспользоваться. Про kickstart я видел в документации примеры, но меня куда больше интересует debian. Насколько я понимаю, поддержку реализовали совсем недавно: http://patchwork.test.kernel.org/patch/3662/ и непонятно, есть она в моей версии из wheezy и как ею пользоваться.
Помимо этого, нашел вариант с каким-то самопальным скриптом, который ставит через debootstrap:
http://dsa.debian.org/howto/install-kvm/
Но еще не пробовал.
в конце концов, ganeti умеет ставить машины с помощью debootstrap, но я не пробовал и не уверен, что это работать с квм
Вопрос тот же: есть ли более подходящие под мои нужды решения?
KVM: автоматизированная установка GNU/Linux
Модератор: Модераторы разделов
Re: KVM: автоматизированная установка GNU/Linux
Нет, как пользоваться preseed я знаю, вопрос в другом: как preseed подсунуть virt-install - не делать же под каждый вариант свою сборку сидюка дебиановского, отличающегося только preseed файлами
-
- Сообщения: 952
- Статус: дилетант широкого профиля
- ОС: Gentoo arm64 musl hardened
- Контактная информация:
Re: KVM: автоматизированная установка GNU/Linux
Боюсь что это - самый честный способ, так же как и при работе с реальными физическими машинами. KVM - не Xen, идеология разная. В оригинале мы не отдаём ФС гостю, а отдаём образ диска. Это разные вещи.
Первое сейчас тоже появилось, но это, ИМХО, попытка взять не нужные фитчи с другой идеологией...
С уважением,
Павел Алиев
Павел Алиев
Re: KVM: автоматизированная установка GNU/Linux
Физические машины я разворачиваю точно так же - либо из образа, либо с помощью debootstrap. Инсталлерами не пользуюсь - неудобно. Так что, видимо, буду пилить свои скрипты для автоматизации установки, как если бы это была физическая машина. Хотя, честно говоря, мне непонятно, почему виртуальную машину нужно разворачивать тк же сложно, как физическую. Ведь вопрос автоматизации решается довольно просто.
У меня такой вопрос к отписавшимся:
Как Вы лично разворачиваете машины в квм?
Что Вы делаете, если Вам за час нужно развернуть, ну, например, 10 машин?
-
- Сообщения: 952
- Статус: дилетант широкого профиля
- ОС: Gentoo arm64 musl hardened
- Контактная информация:
Re: KVM: автоматизированная установка GNU/Linux
1. В продакшне не использую libvirt. Контроль и развёртывание - самописными скриптами. Обычно система ставится инсталлером, так как привык к UUID'ам тем же, а ручками прописывать нет желания.
2. Было раза три, на моей памяти. Решал машиной с livecd + 10 образов дисков, ssh в livecd и debootstrap. Ну и screen, чтобы процессам не мешать) Такая не автоматизация проистекает из пункта 1.
С уважением,
Павел Алиев
Павел Алиев
Re: KVM: автоматизированная установка GNU/Linux
Везет. У меня почти каждый гипервизор начинается с того, что на него инсталлится где-нибудь десяток машин
Без автоматизации тут никуда (:
Решал машиной с livecd + 10 образов дисков, ssh в livecd и debootstrap.
Ясно. Собсно, так и думал.
Тут, кстати, товарищ Ленивая Бестолочь посоветовал умный вещь - использовать pxe. Загрузившись с него, можно подсунуть кастом инсталлер, или же вообще запустить скрипт с debootstrap. Буду в этом направлении копать
Да я бы тоже не использовал libvirt(совершенно не нравится его идеология), да вот только kvm в standalone сильно нехватает средств для управления, что ведет к написанию килограммов скриптов, что мне крайне не хочется. Поэтому, на данный момент, решил использовать libvirt. Хотя вообще еще есть вариант использовать ganeti, но я пока не разглядел - хорошо это или плохо1. В продакшне не использую libvirt. Контроль и развёртывание - самописными скриптами.
-
- Сообщения: 952
- Статус: дилетант широкого профиля
- ОС: Gentoo arm64 musl hardened
- Контактная информация:
Re: KVM: автоматизированная установка GNU/Linux
да вот только kvm в standalone сильно нехватает средств для управления, что ведет к написанию килограммов скриптов
Я уложился в 1К строк кода на Perl. Работает с Unix-сокетами и QMP.
С уважением,
Павел Алиев
Павел Алиев
Re: KVM: автоматизированная установка GNU/Linux
dhcp
tftp
ks.cfg
nfs с уст. образом.
virt-manager
+1
tftp
ks.cfg
nfs с уст. образом.
virt-manager
+1
http://www.debian.org/releases/stable/i386...ru#preseed-dhcpТакже возможно использовать DHCP для указания файла автоматической конфигурации, загружаемого по сети. DHCP позволяет указать имя файла. Обычно, он указывается для способа установки по сети, но если он задан в виде URL, то установочный носитель, который поддерживает автоматическую установку по сети, загрузит файл с указанного в URL адреса и использует его как файл автоматической установки. Вот пример, как можно настроить dhcpd.conf для третьей версии сервера ISC DHCP (Debian пакет dhcp3-server).
if substring (option vendor-class-identifier, 0, 3) = "d-i" {
filename "http://host/preseed.cfg";
}