oz-examples - примеры TDL-файлов для Oz
ОПИСАНИЕ
На страницах руководства oz-install(1), oz-customize(1) и oz-generate-icicle(1) описано использование команд Oz в командной строке. Один из необходимых входных параметров для всех вышеперечисленных команд является файл TDL (Template Description Language), который описывает ОС, которую пользователь хочет установить, откуда взять носитель, а также любые дополнительные пакеты или действия, которые пользователь хочет выполнить с операционной системой. В этом руководстве странице описывается ряд примеров TDL и то, что происходит при их использовании. Поскольку TDL - это XML, для описания различных элементов XML используется стандартная нотация XPath для описания различных элементов XML.
ПРИМЕР 1 - Минимальный гость
Предположим, что мы хотим установить минимальную операционную систему Fedora 13 x86_64 с DVD ISO Fedora 13, расположенного по адресу
http://example.org/fedora-13-x86_64.iso
Чтобы выполнить эту установку, мы сначала создадим XML-файл TDL, а затем отправим его в oz-install. Файл TDL будет выглядеть следующим образом:
Код: Выделить всё
<template>
<name>fedora13_x86_64</name>
<os>
<name>Fedora</name>
<version>13</version>
<arch>x86_64</arch>
<install type='iso'>
<iso>http://example.org/fedora-13-x86_64.iso</iso>
</install>
</os>
<description>My Fedora 13 x86_64 template</description>
</template>
/template/name - это имя, определяемое пользователем. Оно может быть любым, но должно быть уникальным для всех TDL, которые пользователь хочет создать.
/template/os/name - это имя операционной системы, которую мы хотим установить, /template/os/version - это версия, которую мы хотим установить, и /template/os/arch - нужная нам архитектура. Полный список поддерживаемых операционных систем можно получить, выполнив команду:
# oz-install -h
/template/os/install указывает Oz, откуда взять установочный носитель. В этом примере мы задали тип 'iso', что означает, что нам нужен элемент <iso> элемент в XML, указывающий на установочный носитель ISO (поддерживаются и другие методы установки, кроме ISO, и они описаны в других примерах).
/template/description - это необязательное, человекочитаемое описание шаблона. Оно может быть любым по желанию пользователя и игнорируется Oz.
Это все данные, которые нужны Oz. Чтобы выполнить установку, сохраните все вышеперечисленное в файл (например, fedora13.tdl), а затем запустите oz-install:
# oz-install /path/to/fedora13.tdl
Выполнение этой команды загрузит и подготовит установочный носитель, а затем запустит автоматическую установку в гостевом KVM. Предполагается, что установка минимальная операционная система будет установлена на файл в каталоге /var/lib/libvirt/images/fedora13_x86_64.dsk (по умолчанию, место вывода может быть изменено в конфигурационном файле).
ПРИМЕР 2 - Гость с дополнительными пакетами
Предположим, что мы хотим установить операционную систему Fedora 14 x86_64 с DVD ISO Fedora 14, расположенного по адресу
http://example.org/fedora-14-x86_64.iso.
Кроме того, предположим, что мы хотим установить на операционную систему пакет postgresql-server. Чтобы выполнить эту установку, нам сначала нужно создать XML-файл TDL, а затем передать его в oz-install. Файл TDL будет выглядеть следующим образом:
Код: Выделить всё
<template>
<name>fedora14_postgres</name>
<os>
<name>Fedora</name>
<version>14</version>
<arch>x86_64</arch>
<install type='iso'>
<iso>http://example.org/fedora-14-x86_64.iso</iso>
</install>
</os>
<description>Fedora 14 x86_64 with postgres</description>
<packages>
<package name='postgresql-server'/>
</packages>
</template>
Обратите внимание, что это очень похоже на пример 1, за исключением того, что мы указали дополнительный пакет для установки в части /packages/package TDL. Здесь можно указать несколько пакетов, и все они будут установлены в операционную систему. В этом примере все пакеты загружаются и устанавливаются из репозиториев пакетов операционной системы по умолчанию. Запуск установки выполняется так же, как и в примере 1, за исключением того, что нам нужно добавить параметр командной строки, чтобы фактически выполнить настройку:
# oz-install -u /path/to/fedora14.tdl
Выполнение этой команды загрузит и подготовит установочный носитель, а затем запустит автоматическую установку в гостевой системе KVM.
Если начальная установка пройдет успешно, Oz загрузит операционную систему и выполнит собственные команды для установки дополнительных пакетов.
Более подробную информацию о том, почему используется именно такой подход, можно найти в документе Архитектура Oz по адресу
http://github.com/clalancette/oz/wiki/Oz-architecture
Если этот последний шаг пройдет успешно, операционная система с дополнительными пакетами будет установлена в файл в каталоге /var/lib/libvirt/images/fedora14_postgres.dsk (по умолчанию, местоположение вывода может быть переопределено в конфигурационном файле).
ПРИМЕР 3 - Генерация манифеста пакета (ICICLE) после установки
Предположим, что мы хотим установить операционную систему RHEL-5 x86_64 с DVD ISO RHEL-5, расположенного по адресу
http://example.org/rhel-5-x86_64.iso.
Кроме того, предположим, что мы хотим получить манифест пакетов из операционной системы после завершения установки. Чтобы выполнить эту установку, нам сначала нужно создать XML-файл TDL, а затем передать его в oz-install. Файл TDL будет выглядеть следующим образом:
Код: Выделить всё
<template>
<name>rhel5_x86_64</name>
<os>
<name>RHEL-5</name>
<version>U6</version>
<arch>x86_64</arch>
<install type='iso'>
<iso>http://example.org/rhel-5-x86_64.iso</iso>
</install>
</os>
<description>RHEL-5 x86_64</description>
</template>
По сути, это то же самое, что и в примере 1, за исключением того, что мы хотим установить RHEL-5 вместо Fedora-13.
Запуск установки выполняется так же, как и в примере 1, за исключением того, что нам нужно добавить параметр командной строки для создания манифеста в конце:
# oz-install -g /path/to/rhel5.tdl
Выполнение этой команды загрузит и подготовит установочный носитель, а затем запустит автоматическую установку в гостевой системе KVM. Если начальная установка прошла успешно, Oz загрузит операционную систему и выполнит собственные команды для запроса всех пакетов в системе. Затем он выведет XML-документ (так называемый ICICLE), описывающий весь манифест. Если этот шаг пройдет успешно, минимальная операционная система будет установлена в файл в каталога /var/lib/libvirt/images/rhel5_x86_64.dsk (по умолчанию, вывод может быть изменён в конфигурационном файле).
ПРИМЕР 4 - Установка пакета из альтернативного репозитория
Предположим, что мы хотим установить операционную систему RHEL-6 x86_64 с DVD ISO RHEL-6, расположенного по адресу
http://example.org/rhel-6-x86_64.iso.
Кроме того, предположим, что мы хотим установить на операционную систему пакет ccache из репозиториев EPEL-6. Чтобы выполнить эту установку, сначала нужно создать XML-файл TDL, а затем передать его в oz-install. Файл TDL будет выглядеть следующим образом:
Код: Выделить всё
<template>
<name>rhel6_ccache</name>
<os>
<name>RHEL-6</name>
<version>1</version>
<arch>x86_64</arch>
<install type='iso'>
<iso>http://example.org/rhel-6-x86_64.iso</iso>
</install>
</os>
<description>RHEL-6 x86_64 with ccache</description>
<repositories>
<repository name='epel-6'>
<url>http://download.fedoraproject.org/pub/epel/6/$basearch</url>
<signed>yes</signed>
</repository>
</repositories>
<packages>
<package name='ccache'/>
</packages>
</template>
Обратите внимание, что это очень похоже на пример 2, за исключением того, что мы указали дополнительный репозиторий, из которого нужно загружать пакеты. В разделе /repositories/repository раздела TDL указан URL-адрес хранилища пакетов, а также указано, подписаны ли пакеты в этом хранилище подписаны. Запуск установки выполняется так же, как и в примере 2:
# oz-install -u /path/to/rhel6_ccache.tdl
Выполнение этой команды загрузит и подготовит установочный носитель, а затем запустит автоматическую установку в гостевой системе KVM.
Если начальная установка пройдет успешно, Oz загрузит операционную систему и выполнит собственные команды для настройки дополнительных репозиториев и установки дополнительных пакетов. Более подробную информацию о том, почему используется именно такой подход, можно найти в документе Архитектура Oz по адресу
http://github.com/clalancette/oz/wiki/Oz-architecture.
Если этот последний шаг пройдет успешно, операционная система с дополнительными пакетами будет установлена в файл в каталоге /var/lib/libvirt/images/rhel6_ccache.dsk (по умолчанию, местоположение вывода может быть переопределено в конфигурационном файле).
ПРИМЕР 5 - Установка пользовательского файла из информации в TDL
Предположим, что мы хотим установить операционную систему RHEL-6 x86_64 с DVD ISO RHEL-6, расположенного по адресу
http://example.org/rhel-6-x86_64.iso.
Кроме того, предположим, что мы хотим записать некоторые данные в файл /etc/test.out внутри гостя. Чтобы выполнить эту установку, нам сначала нужно создать XML-файл TDL, а затем передать его в oz-install. Файл TDL будет выглядеть следующим образом:
Код: Выделить всё
<template>
<name>rhel6_testout</name>
<os>
<name>RHEL-6</name>
<version>1</version>
<arch>x86_64</arch>
<install type='iso'>
<iso>http://example.org/rhel-6-x86_64.iso</iso>
</install>
</os>
<description>RHEL-6 x86_64 with test.out</description>
<files>
<file name='/etc/test.out'>THIS=extra_data</file>
</files>
</template>
Здесь можно указать несколько файлов, и все они будут установлены в операционную систему в указанные места. Файлы могут быть в виде необработанного текста в TDL, в виде данных в кодировке base64 в TDL или в виде URL-адресов. Нам нужно запустить установку с настройкой чтобы это сработало:
# oz-install -u /path/to/rhel6_testout.tdl
Выполнение этой команды загрузит и подготовит установочный носитель, а затем запустит автоматическую установку в гостевой системе KVM.
Если начальная установка пройдет успешно, Oz загрузит операционную систему и выполнит собственные команды для загрузки файлов, указанных в TDL. Более подробную информацию о том, почему используется именно такой подход, можно найти в документе Архитектура Oz по адресу
http://github.com/clalancette/oz/wiki/Oz-architecture.
Если этот последний шаг пройдет успешно, операционная система с дополнительными файлами будет установлена на файл в каталоге /var/lib/libvirt/images/rhel6_testout.dsk (по умолчанию, местоположение вывода может быть изменено в конфигурационном файле).
ПРИМЕР 6 - Установка пользовательского файла из base64-кодированной информации в TDL
Предположим, что мы хотим установить операционную систему RHEL-6 x86_64 с DVD ISO RHEL-6, расположенного по адресу
http://example.org/rhel-6-x86_64.iso.
Кроме того, предположим, что мы хотим записать некоторые данные в файл /etc/test.out внутри гостя. Поскольку эти данные могут быть двоичными, мы хотим сначала закодировать их в base64. Чтобы выполнить эту установку, нам сначала нужно создать XML-файл TDL, а затем отправить его в oz-install. Файл TDL должен выглядеть следующим образом:
Код: Выделить всё
<template>
<name>rhel6_testout</name>
<os>
<name>RHEL-6</name>
<version>1</version>
<arch>x86_64</arch>
<install type='iso'>
<iso>http://example.org/rhel-6-x86_64.iso</iso>
</install>
</os>
<description>RHEL-6 x86_64 with test.out</description>
<files>
<file name='/etc/test.out' type='base64'>VEhJUz1leHRyYV9kYXRhCg==</file>
</files>
</template>
Здесь можно указать несколько файлов, и все они будут установлены в операционную систему в указанные места. Файлы могут быть в виде необработанного текста в TDL, в виде данных в кодировке base64 в TDL или в виде URL-адресов. Нам нужно запустить установку с настройкой чтобы это сработало:
# oz-install -u /path/to/rhel6_testout.tdl
Выполнение этой команды загрузит и подготовит установочный носитель, а затем запустит автоматическую установку в гостевой системе KVM.
Если начальная установка пройдет успешно, Oz загрузит операционную систему и выполнит собственные команды для загрузки файлов, указанных в TDL. Более подробную информацию о том, почему используется именно такой подход, можно найти в документе Архитектура Oz по адресу
http://github.com/clalancette/oz/wiki/Oz-architecture.
Если этот последний шаг пройдет успешно, операционная система с дополнительными файлами будет установлена на файл в каталоге /var/lib/libvirt/images/rhel6_testout.dsk (по умолчанию, местоположение вывода может быть изменено в конфигурационном файле).
ПРИМЕР 7 - Установка пользовательского файла с URL-адреса
Предположим, что мы хотим установить операционную систему RHEL-6 x86_64 с DVD ISO RHEL-6, расположенного по адресу
http://example.org/rhel-6-x86_64.iso.
Кроме того, предположим, что мы хотим записать некоторые данные в файл /etc/test.out внутри гостя. Мы хотим получить эти данные с URL-адреса и загрузить в гостевой компьютер. Чтобы выполнить эту установку, нам сначала нужно создать XML-файл TDL, а затем передать его в oz-install. Файл TDL должен выглядеть следующим образом:
Код: Выделить всё
<template>
<name>rhel6_testout</name>
<os>
<name>RHEL-6</name>
<version>1</version>
<arch>x86_64</arch>
<install type='iso'>
<iso>http://example.org/rhel-6-x86_64.iso</iso>
</install>
</os>
<description>RHEL-6 x86_64 with test.out</description>
<files>
<file name='/etc/test.out' type='url'>http://example.org/orig.out</file>
</files>
</template>
Здесь можно указать несколько файлов, и все они будут установлены в операционную систему в указанные места. Файлы могут быть в виде необработанного текста в TDL, в виде данных в кодировке base64 в TDL или в виде URL-адресов. Нам нужно запустить установку с настройкой чтобы это сработало:
# oz-install -u /path/to/rhel6_testout.tdl
Выполнение этой команды загрузит и подготовит установочный носитель, а затем запустит автоматическую установку в гостевой системе KVM.
Если начальная установка пройдет успешно, Oz загрузит операционную систему и выполнит собственные команды для загрузки файлов, указанных в TDL. Более подробную информацию о том, почему используется именно такой подход, можно найти в документе Архитектура Oz по адресу
http://github.com/clalancette/oz/wiki/Oz-architecture.
Если этот последний шаг пройдет успешно, операционная система с дополнительными файлами будет установлена на файл в каталоге /var/lib/libvirt/images/rhel6_testout.dsk (по умолчанию, местоположение вывода может быть изменено в конфигурационном файле).