Создание собственного репозитория шаблонов ОС

Материал из ISPWiki
Версия от 15:20, 24 января 2017; Tuupic (обсуждение | вклад) (Актуальные версии (новее 5.57))
Перейти к: навигация, поиск

Актуальные версии (новее 5.57)

Директория на сервере, используемая в качестве репозитория, должна содержать следующие файлы:

  • Файл metadata.xml - основной файл описания репозитория. Используется для получения информации о шаблонах.
  • Файлы с архифами шаблонов в формате tar.gz, включающие в себя также файл описания шаблона metainfo.xml.
    Для шаблонов для VMmanager-OVZ, архив не должен включать описание(так как это стандартный OpenVZ шаблон, и может находится в произвольном месте (указывается в metadata.xml)


Содержимое файла metadata.xml

Это XML файл, содержащий в себе элементы elem, на каждый шаблон. Каждый элемент elem содержит упрощённое описание из metainfo.xml от самого шаблона (за исключением шаблонов для VMmanager-OVZ) Для шаблонов VMmanager-OVZ у элемента elem должен быть установлен атрибут create-metainfo="yes"

Необходимые элементы внутри элемента elem:

  • Элемент osname - имя шаблона
  • Элемент support - группа эелментов elem, с именам программных продуктов, для которых подходит этот шаблон
  • Элемент tags - тэги шаблона
  • Элемент version - версия шаблонного API, требуемая для этого шаблона.
  • Элемент type - тип шаблона. Только для DCImanager. Может принимать значения: ostemplate, diag, rescue, serversearch
  • Элемент filename - имя файла шаблона. Только для VMmanager и DCImanager
  • Элемент externals - Только для шаблонов VMmanager-OVZ. Элемент, содержащий элемент elem, который, в свою очередь, содержит элемент url. Внутри элемента url содержится ссылка на архив в стандартном для OpenVZ формате.
  • Элемент utcmtime - время модификации шаблона.

Пример файла metadata.xml:

<?xml version="1.0" encoding="utf-8"?>
<doc>
  <elem>
    <osname>FreeBSD-9-amd64</osname>
    <support>
      <elem>VMmgr</elem>
      <elem>DCImgr</elem>
    </support>
    <tags>freebsd,unix,freebsd9</tags>
    <version>5.57</version>
    <type>ostemplate</type>
    <filename>FreeBSD-9-amd64-5.57.tar.gz</filename>
    <utcmtime>2016-12-27 05:12:25</utcmtime>
  </elem>
  <elem create-metainfo="yes">
    <osname>Ubuntu-16.04-x86_64</osname>
    <support>
      <elem>VEmgr</elem>
    </support>
    <tags>ubuntu,linux,unix,ubuntu1604,xenial</tags>
    <version>5</version>
    <externals>
      <elem>
        <url>http://mirror.yandex.ru/mirrors/download.openvz.org/template/precreated/ubuntu-16.04-x86_64.tar.gz</url>
      </elem>
    </externals>
    <utcmtime>2016-11-27 05:08:59</utcmtime>
  </elem>
    <osname>Windows-Server-2008-R2</osname>
    <support>
      <elem>VMmgr</elem>
    </support>
    <tags>windows,windows2008r2</tags>
    <version>5</version>
    <type>ostemplate</type>
    <filename>Windows-Server-2008-R2-Web.tar.gz</filename>
    <utcmtime>2016-07-14 03:48:32</utcmtime>
  </elem>
  <elem>
    <osname>Windows Server 2012 R2 Clean</osname>
    <support>
      <elem>DCImgr</elem>
    </support>
    <tags>windows,windows2012r2</tags>
    <version>5</version>
    <type>ostemplate</type>
    <filename>WindowsServer-2012-R2-Clean.tar.gz</filename>
    <utcmtime>2016-08-23 04:58:23</utcmtime>
  </elem>
  <elem>
    <osname>CentOS-7-amd64</osname>
    <support>
      <elem>VMmgr</elem>
      <elem>DCImgr</elem>
    </support>
    <tags>centos,linux,unix,centos7</tags>
    <version>5.57</version>
    <type>ostemplate</type>
    <filename>CentOS-7-amd64-5.57.tar.gz</filename>
    <utcmtime>2016-12-27 06:44:33</utcmtime>
  </elem>
</doc>

Старые версии (до 5.57)

Для создания собственного репозитория необходимо создать директорию на сервере. Данная директория должна содержать несколько файлов:

  • repo.info - по наличию данного файла определяется является ли указанный URL репозиторием шаблонов ОС; данный файл должен содержать одну строку: "ISPsystem OSTemplate"
  • oslist - содержит список доступных шаблонов ОС, в формате "имя_шаблона дата время", где
    • имя_шаблона - имя файла с xml-описанием шаблона (без расширения)
    • дата - дата в формате ГГГГ-ММ-ДД
    • время - время в формате ЧЧ:ММ:СС

Обратите внимание: между именем шаблона и датой должен стоять символ tab, между датой и временем - пробел!

  • один или более файлов с xml-описанием шаблона, формат имени: "имя_шаблона.xml"

Пример содержимого директории:

-rw-rw-r-- 1 root root 442 Aug 19 09:00 VEDebian-6-i386-minimal.xml
-rw-r--r-- 1 root root 892 Aug 21 05:05 oslist
-rw-rw-r-- 1 root root  21 Mar 14 12:17 repo.info

Содержимое файла repo.info:

ISPsystem OSTemplate

Содержимое файла oslist:

VEDebian-6-i386-minimal 2013-08-19 09:00:00

Содержимое файла VEDebian-6-i386-minimal.xml:

 <?xml version="1.0"?>
 <doc>
        <osname>Debian-6.0-i386-minimal</osname>
        <support>
                <elem>VEmgr</elem>
        </support>
        <ignore-content>yes</ignore-content>
        <externals>
                <elem>
                        <url>http://example.com/templates/debian-6.0-i386-minimal.tar.gz</url>
                </elem>
        </externals>
 </doc>