Создание собственных приложений для установки через штатные средства Parallels Cloud Server


    Здравствуйте,

    хочу рассказать вам о наших изысканиях в области автоматизации установки кастомных решений на базе Parallels Cloud Server.

    С момента внедрения PCS для обслуживания нод для наших клиентов сразу же встал вопрос об автоматизации установки своих образов ( Debian + панель на выбор ISPmanager Lite/Pro или FastPanel ), так как на OpenVZ мы добились некоторых успехов в создании именно конечных образов с уже установленной начинкой, то было решено сделать подобные образы и для PCS.


    В чем профит данного решения? Прежде всего, в скорости и удобстве активации для клиентов. Менеджерам не нужно было устанавливать сначала чистый образ системы, потом заходить на сервер, устанавливать руками панель и запускать спец скрипты для тюнинга сервера с панелью. Буквально в два клика мы получаем уже готовый рабочий сервер без лишних телодвижений и это не может не радовать. Сказано — сделано. Была подготовлена база для переноса и, как только первый образ был перенесен и успешно запущен на контейнере, то мы думали, что это окончательная победа. Сервера работают, клиенты рады. В процессе обслуживания в образы вносились изменения ( апдейты ПО, улучшения конфигураций, закрытие багов ) и чем больше было изменений, тем яснее мы понимали, что текущая ситуация не особенно устраивает, так как при внесении изменений в образ на OpenVZ, его нужно было проверить, очистить от лишнего мусора в виде логов, или истории, сконвертировать в ploop формат для работы с PCS, там развернуть и протестировать.

    Так было принято решение исследовать и внедрить установку панели FastPanel ( выбрали первой, так как с ней нам легче обращаться ) штатными средствами PCS, а в частности через PVA раздел — applications.

    Приложения ( applications ) в Parallels Virtual Automation — это приложения для требуемой системы, выполненные в стиле пакетов репозиториев и устанавливаемые, в том числе, через вебинтерфейс.

    По сути своей, приложения устанавливаются через стандартный vzctl набор утилит командой:
    vzpkg install -q CTID .ourapp
    


    Плюс данного подхода состоит в том, что не нужно держать актуальным свой собственный кастомизированный образ, а нужно лишь поддерживать пакет и его совместимость с системой, а образ будет обновляться сам, в том числе, при переустановке контейнера все пакеты, которые для него были выбраны, установятся автоматически. Приложения устанавливаются после сетапа образа, если это была чистая установка, либо после сохранения списка нужных пакетов, если они были выбраны уже в процессе работы сервера.

    Порядок установки системы и выбранных пакетов с нуля:

    1. Автоматика ставит чистый образ системы
    2. Автоматика ставит все пакеты из списка одобренных для данного контейнера

    Еще одним плюсом можно считать слежение за обновлениями приложений, опять же, через вебпанель.

    Перед внедрением собственного пакета немного изучим, как оно вообще должно быть

    Путь до каталога с конфигов приложения имеет вид:
    /vz/template/$OS/$VER/$BIT/config/app
     
    То есть для шаблона ОС - Debian 6 x86_64 путь до конфига будет вот таким :
     
    /vz/template/debian/6.0/x86_64/config/app/
    


    Создаем минимальный шаблон любого приложения:
    mkdir /vz/template/debian/6.0/x86_64/config/app/fastpanel 
    # создаем каталог приложения
    

    mkdir /vz/template/debian/6.0/x86_64/config/app/fastpanel/default 
    # создаем каталог стандартного пакета приложения
    

    touch /vz/template/debian/6.0/x86_64/config/app/fastpanel/default/description    
    # Здесь должен находится текст, который будет отображаться в описании пакета в списке всех доступных приложений ( Manage Applications )
    

    touch /vz/template/debian/6.0/x86_64/config/app/fastpanel/default/packages       
    # Список пакетов по одному на строку. В нашем случае выглядит так : ourapp
    

    touch /vz/template/debian/6.0/x86_64/config/app/fastpanel/default/release        
    # Честно говоря, не совсем понял суть файла, но во всех предустановленных пакетах стоит единица.
    

    touch /vz/template/debian/6.0/x86_64/config/app/fastpanel/default/repositories   
    # Указываем репозиторий, где находится пакет, если пакета нет в официальном стандартном репозитории системы. В нашем случае выглядит так : http://fastpanel.fastvps.ru/fastpanel squeeze main
    

    touch /vz/template/debian/6.0/x86_64/config/app/fastpanel/default/summary
     # Информация, которая будет выводится в summary пакета после установки. Обычно summary = description
    

    touch /vz/template/debian/6.0/x86_64/config/app/fastpanel/default/version
    # Последняя актуальная версия пакета
    


    Пример рабочего конфига пакета
    [root@xx default]# ls
    description  packages  release  repositories  summary  version
    

    [root@xx default]# cat description
    FastPanel for Debian GNU/Linux 6.0 (for AMD64) packaged as a Virtuozzo EZ Template.
    

    [root@xx default]# cat packages
    fastpanel
    

    [root@xx default]# cat release
    1
    

    [root@xx default]# cat repositories
    http://fastpanel.fastvps.ru/fastpanel squeeze main
    

    [root@xx default]# cat summary
    FastPanel for Debian GNU/Linux 6.0 (for AMD64) EZ Template
    

    [root@xx default]# cat version
    0.0.1
    



    После создания всего необходимого скелета и заполнения его нужными данными:
    1. Идем в PVA.
    2. Выбираем нужный контейнер, шаблон которого соответствует, в нашем случае, debian-6.0-x86_64
    Скриншот


    3. Нажимаем на Applications и находим в списке свой пакет.
    Скриншот


    4. Выделяем пакет и нажимаем ">>" после чего он должен перенестись в правую колонку
    5. Нажимаем «Submit» и ждем, пока закончится установка пакета
    Скриншот


    В случае успешной установки в карточке контейнера появится наш пакет:
    Скриншот



    PS Также, если эта тема интересна, то мог бы написать о создании цельного образа со своим ПО под PCS при помощи его штатных средств ( конфиги образов + pre/post скрипты ).

    C уважением, Ваганов Николай
    Системный администратор FastVPS.ru
    FASTVPS LLC 30,53
    Хостинг Вашего Успеха с 2006 года.
    Поделиться публикацией
    Комментарии 1
    • +2
      Конечно интересно! Пишите еще!

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое