Создание дискового шаблона Xen c ОС Linux Ubuntu для VDSmanager

Приступая к работе по созданию дискового шаблона с актуальной на текущей момент версией ОС Linux Ubuntu v14.XX, я даже не был уверен, будет ли она удостоена отдельной заметки. Ибо надеялся, что все сведется к повторению уже знакомых шагов по созданию шаблона с ОС Linux Debian. Однако, несмотря на близкие родственные связи, некоторая разница между ними все же присутствует. Тем не менее, описывать подробно пошагово весь процесс я не буду, остановлюсь лишь только на этих самых особенностях.
Опять же нам потребуется материнская VDS для того, что бы иметь рабочую среду. Я использовал VDS на базе ОС Linux Debian v7.XX, поскольку для разворачивания скелета ОС Linux Ubuntu v14.XX необходима утилита debootstrap версии v1.0.55 или свежее. ОС Linux Debian v6.XX этому требованию не отвечает, а debootstrap v1.0.60 есть в репозитории wheezy-backports, откуда мы ее установим:

apt-get -t wheezy-backports install debootstrap

Посредством debootstrap развернем скелет ОС Linux Ubuntu v14.XX в каталоге "/mnt/Ubuntu-14-amd64-minimal-SIM-Networks":

/usr/sbin/debootstrap --no-check-gpg --arch amd64 trusty /mnt/Ubuntu-14-amd64-minimal-SIM-Networks http://de2.archive.ubuntu.com/ubuntu/

С помощью chroot войдем в эту систему:

mount -t proc /proc /mnt/Ubuntu-14-amd64-minimal-SIM-Networks/proc
mount -t sysfs /sys /mnt/Ubuntu-14-amd64-minimal-SIM-Networks/sys
mount -o bind /dev /mnt/Ubuntu-14-amd64-minimal-SIM-Networks/dev
LANG=C chroot /mnt/Ubuntu-14-amd64-minimal-SIM-Networks /bin/bash

Начнем с настройки репозиториев для менеджера пакетов apt. Правим файл "/etc/apt/sources.list":

deb http://de.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ trusty main restricted universe multiverse

deb http://de.archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://de.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://de.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://de.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ trusty-backports main restricted universe multiverse

deb http://archive.canonical.com/ubuntu trusty partner
deb-src http://archive.canonical.com/ubuntu trusty partner

deb http://extras.ubuntu.com/ubuntu trusty main

Обновляем ОС и установленные в ней пакеты:

apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 16126D3A3E5C1192
apt-get -y update
apt-get -y upgrade

Устанавливаем в системе недостающие пакеты:

apt-get -y install screen less mc locales udev openssh-server bridge-utils busybox linux-firmware initramfs-tools makedev module-init-tools perl python python-minimal ssh python-support unrar-free htop dnsutils tcpdump telnet iotop lftp sysstat dstat atop bzip2 zip ntpdate rsync wget curl iftop iptraf mtr linux-image-generic language-pack-en man-db nano

Хотя в вышеприведенном списке нет GRUB, но он будет установлен в качестве зависимости. Поэтому вас спросят, в загрузочную запись какого HDD его следует инсталлировать. Откажитесь от этой операции.
Немного настроим систему под свои предпочтения: укажем текстовый редактор по умолчанию, часовой пояс, язык и кодировку локализации.

update-alternatives --config editor
select-editor
dpkg-reconfigure tzdata
update-locale LC_ALL=en_US.utf8 LANG=en_US.utf8

Настроим автозапуск сервисов при загрузке системы:

update-rc.d -f rsync remove
update-rc.d -f ondemand remove
update-rc.d -f grub-common remove
update-rc.d ssh defaults
update-rc.d rsyslog defaults
update-rc.d networking start 11 S . stop 06 0 6 .
update-rc.d kmod start 06 S .
update-rc.d procps start 10 S .
update-rc.d udev start 10 S .

По умолчанию в настройках сервера SSH будет отключена авторизация по паролю для администратора root. Разрешим ее, изменив в файле "/etc/ssh/sshd_config" значение опции с "PermitRootLogin without-password" на "PermitRootLogin yes".
Удаляем символическую ссылку "/etc/resolv.conf", что автоматически приводит к отключению сервиса resolvconf. В нем нет никакой нужды. Необходимые настройки будут автоматически производиться скриптами первичной инициализации VDS.
Настроим специальную системную консоль, необходимую для взаимодействия панели управления VDSmanager и самой VDS. Для этого создадим файл "/etc/init/hvc0.conf" следующего содержания:

# hvc0 - getty
#
# This service maintains a getty on hvc0 from the point the system is
# started until it is shut down again.

start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]

respawn
exec /sbin/getty -n -L 115200 -l /bin/bash -i hvc0 vt100

Дальнейшие действия полностью повторяют создание шаблона с ОС Linux Debian, поэтому описывать их еще раз не буду. Необходимо создать пустые файлы "/etc/network/interfaces" и "/etc/hostname", включить сбор статистики утилитой sysstat, заполнить "/etc/fstab", установить xenclient, проверить и удалить лишнее из "/etc/hosts".
На этом предварительная настройка самой ОС Linux Ubuntu закончена. Чистим кэш менеджера пакетов apt и историю интерпретатора командной оболочки BASH, выходим из окружения chroot создаваемого шаблона:

apt-get clean
rm ~/.bash_history && history -c && history -w
exit

umount /mnt/Ubuntu-14-amd64-minimal-SIM-Networks/proc
umount /mnt/Ubuntu-14-amd64-minimal-SIM-Networks/sys
umount /mnt/Ubuntu-14-amd64-minimal-SIM-Networks/dev

Скрипты и файлы настройки необходимые для развертывания VDS из VDSmanager заимствуем из ранее созданного шаблона "Debian-7-i386-minimal-SIM-Networks". Скопируем их в каталог "/template/Ubuntu-14-amd64-minimal-SIM-Networks/":

rsync -avh --progress /template/Debian-7-amd64-minimal-SIM-Networks/ /template/Ubuntu-14-amd64-minimal-SIM-Networks/ --exclude='image' --exclude='initrd*' --exclude='vmlinuz*'

В шаблоне домена Xen "config" необходимо исправить значения двух опций: kernel и ramdisk.

kernel = "__TEMPL__/vmlinuz-3.13.0-30-generic"
ramdisk = "__TEMPL__/initrd.img-3.13.0-30-generic"
acpi = 1
apic = 1
name = "__NAME__"
root = "/dev/xvda ro"
vif = [ 'ip=__IP__' ]
disk = [ '__TYPE__:__DISK__,xvda,w' ]
vfb = ['type=vnc, vncunused=0, vncdisplay=__ID__, vncpasswd=__PASSWD__']
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
serial='pty'
extra='xencons=hvc0'

Файлы ядра и загрузочного диска RAM необходимо скопировать в каталог "/template/Ubuntu-14-amd64-minimal-SIM-Networks/":

cp /mnt/Ubuntu-14-amd64-minimal-SIM-Networks/boot/vmlinuz-3.13.0-30-generic /template/Ubuntu-14-amd64-minimal-SIM-Networks/
cp /mnt/Ubuntu-14-amd64-minimal-SIM-Networks/boot/initrd.img-3.13.0-30-generic /template/Ubuntu-14-amd64-minimal-SIM-Networks/

Теперь остается лишь создать архив "image" со структурой каталогов для будущего шаблона и инсталлировать его в панель управления VDSmanager. Эти шаги опять же описаны в заметке про создание шаблона с ОС Linux Debian.

Поделиться ссылкой:

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


Примечание - Вы можете использовать эти HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>