Создание профиля OpenVZ: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
 
(не показаны 2 промежуточные версии этого же участника)
Строка 9: Строка 9:
Команда вида:
Команда вида:
<pre>
<pre>
$ mkve-template --hypervisor=openvz --packages='apt proftpd openssh-server' /tmp/test_template
$ mkve-template --hypervisor=openvz --packages='interactivesystem apt proftpd openssh-server' /tmp/test_template
</pre>
</pre>
создаст темплейт с именем '''test_template''' в каталоге '''/tmp'''.
создаст темплейт с именем '''test_template''' в каталоге '''/tmp'''.
Строка 17: Строка 17:
Дополнительные ключи команды можно узнать запустив её с ключом '''--help'''.
Дополнительные ключи команды можно узнать запустив её с ключом '''--help'''.


<div style="border: 1px solid darkblue; padding: 4px;">'''Внимание!''' Для входа в shell виртуальной машины командой ''vzctl enter <VEID>'' обязательно указывайте пакет '''interactivesystem'''</div>
=== Базовые пакеты ===
=== Базовые пакеты ===
Бывает необходимо поставить в контейнер пакеты для более удобной работы с контейнером.
Бывает необходимо поставить в контейнер пакеты для более удобной работы с контейнером.

Текущая версия от 14:21, 23 августа 2010

Требования к окружению

У вас должна быть установлена система ALT Linux, необходимые утилиты для создания профиля. На сервере, где будет разворачиваться профиль необходимо иметь работающее ядро с поддержкой openvz, утилиты управления контейнерами.

Имейте ввиду, создать профиль на i586-машине для архитектуры x86_64 нельзя.

Создание темплейта контейнера

Создать темплейт для профиля проще всего командой mkve-template из пакета mkve. Команда вида:

$ mkve-template --hypervisor=openvz --packages='interactivesystem apt proftpd openssh-server' /tmp/test_template

создаст темплейт с именем test_template в каталоге /tmp. В качестве опций указали команде, что необходимо создать темплейт для системы виртуализации OpenVZ (опция --hypervisor=openvz), указали список пакетов, которые будут обязательно установлены при создании профиля (опция --packages=).

Список пакетов можно записать в файл и указать путь к нему используя ключ --fpackages=FILES Дополнительные ключи команды можно узнать запустив её с ключом --help.

Внимание! Для входа в shell виртуальной машины командой vzctl enter <VEID> обязательно указывайте пакет interactivesystem

Базовые пакеты

Бывает необходимо поставить в контейнер пакеты для более удобной работы с контейнером. Например, для удобного редактирования текстовых файлов достаточно доставить пакет vim-console, что бы иметь возможность после развёртывания контейнера устанавливать дополнительное ПО, необходимо прописать пакет apt. Для доступа к контейнеру по протоколу SSH, достаточно указать поставить пакет openssh-server

Все пакеты, как показано выше, можно передать программе посредством ключа --packages или --fpackages=FILES. Необходимые пакеты можно доставить и после развёртывания контейнера.

Создание профиля

Перед тем как создать профиль, необходимо настроить сборочную систему Hasher.

Имея настроенную систему hasher, можно собрать профиль из заранее заготовленного темплейта OpenVZ используя команду mkve-bundle. Запустим команду, указав в качестве опций, создать профиль для OpenVZ (опция --hypervisor=openvz), куда нужно сохранить профиль после создания (опция --output=/home/test/bundles/) и путь к ранее созданному темплейту:

$ mkve-bundle --hypervisor=openvz --output=/home/test/bundles/tesing.bun /tmp/test_template/

Если всё прошло удачно, то в директории, /home/test/bundles, увидим созданный файл профиля:

$ ls -l /home/test/bundles/
итого 145948
-rw-r--r-- 1 mike mike 149299200 Май 26 19:00 testing.bun

Создание plain openvz template cache

Если вам не требуется создание bundle (для использования из alterator), а нужен простой openvz template cache (для создания контейнеров непосредственно с помощью vzctl), можно воспользоваться утилитой mkve-cache:

$ mkve-cache -v --create-fake-devices -z --output altlinux-5.1-i586.tar.gz awk vim-console

Указание --apt-conf не предусмотрено, так что нужно прописать в /etc/apt/sources.list необходимые репозиториии.