Proxmox и KVM шаблоны

12
Glueon
На сайте с 26.07.2013
Offline
172
3811

Задача простая и возможно решение очень очевидное, но ... Нужно иметь возможность быстро создать KVM VPS с предустановленной системой.

В случае с VDSManager все было достаточно понятно - писался setup скрипт, который запускался после создания Logical Volume и дальше можно было делать что душе угодно.

В Proxmox есть возможность создать шаблон из уже существующей VPS и даже если автоматизировать установку root-пароля и настроек сети, то что делать с тем, что у новых VPS размер диска может отличаться от того, что был в шаблоне? Можно грубо после запуска VPS изнутри убивать таблицу разделов, пересоздавать и делать online resize2fs, но как-то это не очень.

Можно, если VPS-ки бывают, к примеру, 3 разных размеров, создать 3 разных шаблона, но неудобно это.

В идеале, наверное, если есть возможность запускать какой-то postcreate скрипт, который вызывается после создания VPS, но я такого не видел в доках.

Установка через pXE - вариант, но если дистрибутивов много неудобно это поддерживать и установка занимает время. Хочется решение быстрое.

Нид хелп :idea:

Есть много IP-сетей в аренду под прокси, парсинг, рассылки (optin), vpn и хостинг. Телега: @contactroot ⚒ ContactRoot команда опытных сисадминов (/ru/forum/861038), свой LIR: сдаем в аренду сети IPv4/v6 (/ru/forum/1012475).
Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#1

Поставьте VMmanager :)

С уважением, Борис Долгов. Администрирование, дешевые лицензии ISPsystem, Parallels, cPanel, DirectAdmin, скины, SSL - ISPlicense.ru (http://www.isplicense.ru/?from=4926)
Glueon
На сайте с 26.07.2013
Offline
172
#2

Спасибо, предыдущий ISP продукт к сожалению (или счастью) оставил неприятный осадок на душе. :)

Хочется заставить именно такое решение. К тому же такой опыт, наверное, пригодится и для выделенных серверов. Для создания snapshot-а системы и переноса ее на диск иного размера, например.

Boris A Dolgov
На сайте с 04.07.2007
Offline
215
#3

Мне вариант установки через PXE+kickstart/preseed кажется более правильным. Для каждой операционной системы нужно один раз написать скрипт, который занимается установкой, после чего у клиентов новая VPS будет всегда обновлена до последних версий ПО и не будет содержать никаких вещей вроде логов или ssh-ключей из Вашего шаблона. Скорость установки увеличивается подниманием локальных зеркал, хотя, скорее всего, в Вашем ДЦ уже есть быстрое локальное зеркало.

Если в документации нет ничего про postcreate скрипт (я не нашел, но искал не очень тщательно), то делать получится только из самой VPS. fdisk+resize2fs потребуют два ребута, так как ядро не перечитает таблицу разделов используемого диска, кроме того, не все ФС/версии (например, resize2fs из centos5 для ext3) могут изменять онлайн размер примонтированного раздела. Я для решения проблемы написал бы модуль для initrd/initramfs, который бы проверял существование какого-нибудь /need_resize, и в этом случае делал какой-нибудь echo -ne "d\n3\nn\np\n3\n\n\nw\n" | fdisk /dev/vda && resize2fs /dev/vda3. Минус решения -- придется для каждой ОС вникать, как попасть в initramfs. Другой вариант -- сделать универсальные ядро+initramfs, которые будут грузиться всегда при первом запуске, выполнять ресайз и самоуничтожаться из /boot.

Возможно, еще имеет смысл воспользоваться каким-нибудь специальным решением для деплоймента, они позволяют не писать скрипты для PXE-установок, а выполнять настройки через web-интерфейс и сами следят за всеми новыми ОС.

P
На сайте с 08.03.2007
Offline
250
#4

Я бы так попробовал: сделать базовую установку, запустить виртуалку с пустым диском максимального для виртуалки размера, при необходимости сделать виртуалку на диске делать файл, монтировать его как диск, разбивать на нужные разделы, копировать нужные файлы, инициализировать груб . Так как для базовой системы это обычные файлы, сделать можно что угодно. После этого передавать пользователю копию размонтированного диска. Если размеры дисков имеют немного вариантов, возможно и повторное использование.

Glueon
На сайте с 26.07.2013
Offline
172
#5

Boris A Dolgov,

Это красиво и правильно, но это - время. Проблема в том, что если взять тот же WHM - у него письмо об активации VPS уходит сразу же, как создается виртуалка, а не тогда, когда она реально заработает. Сообщения в виде "ваша VPS будет активирована через 5 МИНУТ" успешно игнорируются, клиент начинает лихорадочно ребутать VPS и все ломает :) С VDSManager такое было невозможно, потому что пока VPS не установится WHM заказ не активирует.

В принципе я прошел через оба подхода. Я и пробовал делать sfdisk + resize находу с двумя ребутами и ставить через PXE.

PXE дался очень не сразу, так как с preseed-ом Debian-овским я навозился столько, что мне даже не хочется в эту сторону смотреть :)

Вопрос был скорее с надеждой совместными усилиями найти в Proxmox какой-то postcreate. Postcreate очень удобен и для OpenVZ, чтобы пароли прописать каким-нибудь сервисам - не только в KVM проблема.

Видимо придется взять и сделать через pXE что-то типа liveCD, в котором после его загрузки и реализовать подобие моих setup скриптов из VDSManager. Только дело в том, что в setup скрипты VDSManagerа передавался пароль, а здесь он неизвестен и придется писать какой-то гейт для WHM.

VK
На сайте с 29.12.2011
Offline
42
#6

Glueon, посмотрите в сторону автоинсталляционных скриптов у хецнера.

Возьмите у них самый дешевый выделенный сервер (с постороннего аккаунта, ибо потом сервер заблокируют) и с него расковыряйте их систему - очень удобная штука, в том числе как для ручной, так и для автоматической установки (;

Дальше уже поняв принцип и взяв за основу можно написать и полностью свое решение, и интегрировать их в свои панели, там это очень удобно делается.

Glueon
На сайте с 26.07.2013
Offline
172
#7
V2NEK:
Glueon, посмотрите в сторону автоинсталляционных скриптов у хецнера.
Возьмите у них самый дешевый выделенный сервер (с постороннего аккаунта, ибо потом сервер заблокируют) и с него расковыряйте их систему - очень удобная штука, в том числе как для ручной, так и для автоматической установки (;
Дальше уже поняв принцип и взяв за основу можно написать и полностью свое решение, и интегрировать их в свои панели, там это очень удобно делается.

Спасибо за совет, так и делал в свое время с ДЦ netdirekt 🤪

В hetzner просто tar.gz архивы дистрибутивов и скрипт, который создает разделы, делает untar и прочее. Это можно без особых психологических потерь написать и самому и я это уже делал для серверов в стойке.

Проблема тут вся в том, что чтобы знать чего и с какими настройками поставить необходима дырка в биллинге из которой эти данные можно будет брать. Это не то, чтобы страшно и ужасно, но VDSManager с этой задачей справлялся - процесс установки инициировался со стороны биллинга и setup скрипт имел на руках все необходимые данные - IP, Template и Password, и LogicalVolume на основе которых я мог уже чего хочу делать.

Поэтому из последних надежд хочется понять, а может в Proxmox есть что-то такое. Потому что пока без делания дырки в биллинге я не понимаю как мне, например, у каких-то приложений выставлять пароли, если нет поддержки pam и не хочется делать дырку в биллинге :) ISP это позволял этим самым setup-ом.

Proxmox толкает в сторону turnkey образов, но там нужно заходить под SSH, чтобы их сконфигурировать. Не каждому клиенту это канает :)

P
На сайте с 08.03.2007
Offline
250
#8

turnkey образы вообще очень специфические.

Glueon
На сайте с 26.07.2013
Offline
172
#9
Pilat:
turnkey образы вообще очень специфические.

Например? :)

P
На сайте с 08.03.2007
Offline
250
#10

Например при штатном обновлении у меня два раза слетел груб.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий