CoreSystem/Virtualization/Создание bundle: различия между версиями

Материал из ALT Linux Wiki
(Новая: == Что такое bundle == === Формат bundle === ==== <s>Метафайл</s> ==== ==== <s>PGP-подпись</s> ==== ==== <s>Наборы пакетов</s> ==== ==== <s>Н...)
 
Строка 1: Строка 1:
{{Stub}}
== Что такое bundle ==
== Что такое bundle ==



Версия от 13:12, 25 февраля 2009

Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.


Что такое bundle

Формат bundle

Метафайл

PGP-подпись

Наборы пакетов

Наборы хуков

Создание bundle с помощью mkve-bundle

/* Для создания tarball'ов с заданным набором пакетов используется утилита mkve-cache(1). Она создает hasher'овский chroot, устанавливает в него необходимые пакеты, копирует в него необходимые файлы, запускает хуки и команды. После (или вместо) этого она может затарить указанный chroot (это может быть произвольный hasher'овский chroot). Предположительно, скоро эта утилита будет переименована в hsh-<что-то> и переедет в hasher(7). */

Формат нативного шаблона для mkve-bundle

Вот полный список файлов для гипервизора hypervisor:

./version                    # версия шаблона
./packages/$hypervisor       # файл со списком пакетов, устанавливающихся в bundle
                             # при использовании гипервизора $hypervisor
./hooks-lists/$hypervisor    # [необ.] файл со списком хуков для гипервизора $hypervisor
./conf/$hypervisor/          # [необ.] директория, содержащая дополнительные файлы для упаковки
                             # в bundle для гипервизора $hypervisor

Таким образом, все, кроме версии зависит от типа виртуализации и единственным обязательным списком является список пакетов.

Создание bundle/контейнеров собственными силами

Пакеты ve-*

Эти пакеты предназначены для создания контейнеров. Они не содержат ни одного файла, но вытягивают указанные в них пакеты по зависимостям. Имеется два типа таких пакетов.

Первый тип составляют пакеты ve-<name>. Они определяют множество пакетов, необходимое для создания контейнера для "сервиса" <name>. Например, пакет ve-ftp-server вытягивает множество пакетов, необходимое для поднятия ftp-сервера на "работающей" виртуальной машине.

Второй тип составляют пакеты ve-hypervisor-<hypervisor>. Они определяют дополнительное множество пакетов, необходимое для запуска сервиса под конкретным типом виртуализации. Этот пакет может оказаться и "пустым", если дополнительных пакетов не требуется (как, например, в случае OpenVZ).

Таким образом, множество пакетов, требуемых для поднятия сервиса <service> на виртуальной машине под управлением гипервизора <hypervisor> определяется "суммой" ve-<service> + ve-hypervisor-<hypervisor>.

Утилита mkve-cache (aka hsh-?)

Для тех, кто привык не надеяться ни на кого, кроме себя и hasher'а, имеется утилита mkve-cache. Эта утилита позволяет создать и упаковать hasher'овский chroot с нужным набором пакетов. Кроме этого, при создании chroot можно запускать хуки, команды и копировать файлы из host'а в chroot. Подробное описание см. в mkve(1).

Пример 1.

$ mkve-cache --out <file> <список пакетов>

установит в дефолтный hasher'овский chroot пакеты <список пакетов>, и после этого запакует содержимое chroot'а в файл <file>.

Пример 2.

$ mkve-cache --out <file> --command 'chkconfig sshd on' <список пакетов>

установит в дефолтный hasher'овский chroot пакеты <список пакетов>, запустит в chroot'е команду

chkconfig sshd on

и после этого запакует содержимое chroot'а в файл <file>.

Пример 3.

$ mkve-cache -z --tarify-only <путь к hasher'овскому chroot'у>

просто запакует указанный chroot в файл $TMPDIR/output.tar.gz.