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

в 19:27, , рубрики: fastvps, parallels cloud server, автоматизация, Блог компании FastVPS LLC, метки: , ,

Создание собственных приложений для установки через штатные средства 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

Скриншот

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

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

Скриншот

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

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

Скриншот

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

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

Скриншот

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

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

Автор: nikolayvaganov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js