среда, 11 июля 2012 г.

Как создать шаблон debian-6-amd64 для VDSmanager-KVM

Создание шаблона Debian 6 для VDSmanager-kvm


Поделюсь опытом создания шаблона виртуального сервера для VDSmanager с виртуализацией  KVM

Итак, начнем. У нас есть сервер с установленным VDSmanager. Необходимо установить шаблон "empty-linux-template" - это основа для нашего будущего шаблона




Шаг 1. Создаем виртуальный сервер с именем deb6amd64.ru



Шаг 2. ISO

подключаем к созданной VPS ISO-образ с debian-6.0.5-amd64-netinst.iso (образ должен лежать в /kvm/iso)
Если у вас на панели нет кнопки "подклчить ISO" - вам необходимо зайти в политики и поставить галочку на "VirtualCD"

Перезагрузим VPS и зайдем на сервер по vnc, видим примерно следующее:



Шаг 3. Произведем установку. 

Жесткие диски следует разбить следующим образом:


Это нужно для того, чтобы загрузчик был в отдельном небольшом разделе, чтобы VDSmanager не трогал этот раздел при разворачивании шаблона на виртуальную машину.

Откажемся от swap и продолжим установку.

ПО, необходимое нам. Не забудьте убрать лишние галочки.

Закончим установку.
Переходим в VDSmanager и отключаем ISO-образ:
После этого перезагрузим VPS из VDSmanager

Шаг 4. Настройка "изнутри" 


Заходим на виртуальный сервер с будущим шаблоном по ssh

Поправим файлик /etc/default/grub, найдем и раскомментируем строку

GRUB_DISABLE_LINUX_UUID=true


Это нужно для того, чтобы в grub.conf попали ссылки на блочные устройства, а не их идентификаторы.
далее,

root@deb6amd64:~# update-grub


Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-5-amd64
Found initrd image: /boot/initrd.img-2.6.32-5-amd64
done

теперь можно исправить следующие строки в /boot/grub/grub.conf :

было
linux   /vmlinuz-2.6.32-5-amd64 root=/dev/sdb1 ro  quiet
стало
linux   /vmlinuz-2.6.32-5-amd64 root=/dev/sdb ro  quiet

Поправим /etc/fstab. Должно получиться примерно так:

# / was on /dev/sdb1 during installation
/dev/sdb /               ext3    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
/dev/sda1 /boot           ext3    defaults        0       2

Далее, установим vdstools (пакет для связи виртуального сервера с "папой"

root@deb6amd64:~# wget http://ru.download.ispsystem.com/vdstools/VDStools-0.8.3-Linux-x86_64.tgz
root@deb6amd64:~# tar -xzf VDStools-0.8.3-Linux-x86_64.tgz 
root@deb6amd64:~# ./install.sh 
root@deb6amd64:~# rm -rf tools tools.tgz install.sh VDStools-0.8.3-Linux-x86_64.tgz 
root@deb6amd64:~# update-rc.d vds-tools defaults


Закончили.


root@deb6amd64:~# halt -p

Шаг 5. Оформление шаблона


Перейдем на "папу", закончим делать шаблон
Перейдем в папку с нашей "заготовкой"

root@free /root # cd /kvm/machines/deb6amd64.ru

Подмонтируем рутовый раздел, для этого необходимо выйснить смещение первого раздела относительно начала файла:

root@free /kvm/machines/deb6amd64.ru # fdisk -lu root.img 
You must set cylinders.
You can do this from the extra functions menu.


Disk root.img: 0 MB, 0 bytes
10 heads, 63 sectors/track, 0 cylinders, total 0 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000250c3


   Device Boot      Start         End      Blocks   Id  System
root.img1   *        2048     8386559     4192256   83  Linux
Partition 1 has different physical/logical beginnings (non-Linux?):
     phys=(0, 32, 33) logical=(3, 2, 33)
Partition 1 has different physical/logical endings:
     phys=(522, 9, 63) logical=(13311, 9, 63)

Искомая цифра 512 * 2048 
В некоторых ОС эта цифра может быть другой, будте внимательны.

Вытащим файлы, создадим архив, создадим директорию для шаблона и скопируем туда содержимое контейнера с VPS.

root@free /kvm/machines/deb6amd64.ru # mkdir fs
root@free /kvm/machines/deb6amd64.ru # mount -o loop,offset=$((2048*512)) root.img fs
root@free /kvm/machines/deb6amd64.ru # tar czf content.tgz -C fs/ .
root@free /kvm/machines/deb6amd64.ru # umount fs/
root@free /kvm/machines/deb6amd64.ru # rmdir fs
root@free /kvm/machines/deb6amd64.ru # mkdir /kvm/template/debian-6-amd64
root@free /kvm/machines/deb6amd64.ru # cp * /kvm/template/debian-6-amd64/
root@free /kvm/machines/deb6amd64.ru # cd /kvm/template/debian-6-amd64/
root@free /kvm/template/debian-6-amd64 # rm -f root.img 


Осталось допилить шаблон:
Файл filesystem описывает, какие дисковые устройства подключаются к VPS. После редактирования он должен содержать следующее:


hda=img:boot.img::n
hdb=tar:content.tgz:1024:c
root=hdb
boot=dc

удалим лишнее и установим версию:

root@free /kvm/template/debian-6-amd64 # rm install-disk pidfile pre-run.conf
root@free /kvm/template/debian-6-amd64 # echo 1.0 > VERSION 

Шаблон готов. Осталось добавить его в конфиг манагера. Добавьте следующую запись:

disktemplate "debian-6-amd64" {
Path /kvm/template/debian-6-amd64
Status ok
Update yes
}

Готово. Удачи.





Комментариев нет:

Отправить комментарий