OVZ/CreateTemplate
Создание шаблона для OpenVZ в ALT Linux
Шаблоном называется архив с набор предуставновленных пакетов на основе которого подготавливается контейнер для виртуального сервера. В простых случая, это архив с запакованноым минимальным chroot'ом. В описании OpenVZ на wiki ALT Linux. Шаблоны подготавливаются с помощью утилиты SPT (от сл. separator). Несмотря на то что она устарела и её использование уже давно должно быть заменено на новый MKimage, SPT все ещё работает (не без костылей конечно ALT#26225 - исправленный вариант доступен в репозиториях LINUX@Etersoft spt-0.6.0-alt12.eter1.noarch.rpm).
Ниже представлено описание того, как создать шаблон, с помощью SPT.
Порядок действий
- создать каталог с профилем;
- настроить hasher;
- подготовить необходимые apt.conf и sources.list;
- выполнить сборку
Каталог с профилем можно взять из шаблона в пакете spt-profiles-ovz:
/etc/spt/profiles/ovz/.default/
Этот каталог нужно скопировать в рабочий каталог под именем profile.
Для сборки нужна специальная настройка hasher:
allow_ttydev=YES
Глобально эта настройка устанавливается здесь:
/etc/hasher-priv/system
Локально пользователю может быть установлена в файле:
/etc/hasher-priv/user.d/sin
При этом, в hasher, доступен некий набор профилей, чтобы не засорять глобальные настройки системы и пользователя. Профили указываются через параметр --number. Добавляются профили путём создания файлов вида:
/etc/hasher-priv/user.d/sin:1
/etc/hasher-priv/user.d/sin:2
где числа - это есть имена (или номера) профилей
SPT поддерживает такие профили. Команда сборки у меня выгядит следующим образом:
spt -v --number=1 --apt-config=/home/sin/etc/apt.conf.x86_64.p5.clean --image-type=tgz /srv/sin/ovz
Пример настроек:
$ cat /etc/hasher-priv/user.d/sin:1
user1=sin_a
user2=sin_b
allow_ttydev=YES
$ cat /home/sin/etc/apt.conf.x86_64.p5.clean
Dir::Etc::main "/dev/null";
Dir::Etc::parts "/var/empty";
Dir::Etc::SourceParts "/var/empty";
RPM::Ignore { "vim-plugin-vimruby"; };
Dir::Etc::SourceList "/home/sin/etc/branch.x86_64.p5.clean.list";
$ cat /home/sin/etc/branch.x86_64.p5.clean.list
rpm file:/var/ftp/pub/ALTLinux/p5 x86_64 classic
rpm file:/var/ftp/pub/ALTLinux/p5 x86_32 classic
rpm file:/var/ftp/pub/ALTLinux/p5 noarch classic