Эксплуатация

Настройка Apache 2.4

Добавляем в файл /etc/hosts и прописываем в локальный DNS организации

127.0.0.1 xrad.xsquare

Создаем файл конфигурации VirtualHost для xrad-demo сервера

vi /etc/apache2/sites-available/xrad.xsquare.conf (vi /etc/httpd/conf.d/xrad-demo.xsquare.conf)

<VirtualHost *:80>
       ServerAdmin info@xsquare.ru
       ServerName  xrad.xsquare
       ServerAlias xrad.xsquare

       DocumentRoot /var/www/xrad.xsquare

       ProxyPass        /ds  http://127.0.0.1:8889/ds
       ProxyPassReverse /ds  http://127.0.0.1:8889/ds

       ErrorLog ${APACHE_LOG_DIR}/error.log
       CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Включаем сайты http://xrad.xsquare

a2ensite xrad.xsquare.conf
systemctl restart apache2

Настройка дистрибутива XSQUARE - XRAD

Настройка Web Resources XSQUARE - XRAD

Копируем файл Web приложения из дистрибутива

scp -r -P 22 xrad.xsquare root@IP_Server:/var/www/

Настройка сервера приложений XSQUARE - XRAD

Копируем дистрибутив сервера приложений

scp -r -P 22 /usr/local/xsquare.xrad  root@IP_Server:/usr/local

Настраиваем параметры соединения с PostgreSQL

vi /usr/local/xsquare.xrad/config.json

{
    "app": {
        "port": "8889"
    },
    "XRADDatabase": {
        "login": "xrad_user",
        "password": "xrad_user",
        "domain": "localhost",
        "port": "5432",
        "dbName":"xraddb",
        "runtimeOptions":{
            "LC_NUMERIC":"ru_RU.UTF-8"
        }
    },
    "AppDatabase": {
        "login": "app_user",
        "password": "app_user",
        "domain": "localhost",
        "port": "5432",
        "dbName":"appdb",
        "runtimeOptions":{
            "LC_NUMERIC":"ru_RU.UTF-8"
        }
    }
}

Создаем сервис

vi /etc/systemd/system/xsquare.xrad.service

[Unit]
Description=XRAD Services
After=syslog.target network.target
After=postgresql.service

[Service]
Type=simple
ExecStart=/usr/local/xsquare.xrad/xrad
WorkingDirectory=/usr/local/xsquare.xrad
Restart=on-failure
RestartSec=3

[Install]
WantedBy=default.target

Включаем для сервиса AvtoStart и запускаем и проверяем статус

systemctl enable xsquare.xrad.service
systemctl start  xsquare.xrad.service
systemctl status xsquare.xrad.service

Открываем и проверяем запуск

http://xrad.xsquare/

Установка обновлений

Обновление стенда

В документации будет рассмотрен вариант инсталляции модулей XSQUARE-PGHS на нескольких серверах:

  1. srv-app – является сервером приложения. На данном сервер запущены следующие службы:

  1. apache2 – веб-сервер

  2. xsquare.pghs – сервер приложений (PGHS)

  3. xsquare.xrad – административный сервер приложений (XRAD)

  1. srv-db – сервер базы данных (далее БД)

Описание архива

Обновления распространяются в виде ZIP-архивов которые имеют имя в формате patch_{version}.zip и содержат следующие элементы:

  1. Скрипт обновления, который необходимо выполнить на БД – script.sql

  2. Папка usr/local (в случае, если требуется обновление сервисов) содержащая папки (наличие папок и файлов в них зависит от необходимости обновления. Если необходимости обновления нет, то не будет соответствующей папки и/или файла):

  1. xsquare.pghs – содержит в себе файлы сервера приложений (PGHS): pghs – исполняемый файл сервиса; config.json – конфигурационный файл сервиса.

  2. xsquare.xrad – содержит в себе файлы административного сервера приложений (XRAD): xrad – исполняемый файл сервиса; config.json – конфигурационный файл сервиса.

  1. Папка etc (в случае, если требуется обновление каких-либо системных настроек). Может содержать в себе следующие папки:

  1. apache2/httpd – обновление настроек сервера apache. Содержит папки с файлами конфигурации сервера.

  2. systemd – обновление настроек системы управления сервисами LINUX. Содержит папки с файлами конфигурации сервисов.

  1. Папка var/www (в случае, если требуется обновление UI для PGHS и/или XRAD). Может содержать в себе следующие папки:

  1. pghs.xsquare – папка содержит UI для PGHS.

  2. pghs.xsquare.files.local – папка содержит дополнительные файлы настройки UI для PGHS, не относящиеся непосредственно к базовой конфигурации UI.

  3. xrad.xsquare – папка содержит UI для XRAD.

Подготовка к обновлению

Для начала обновления необходимо загрузить архив на целевой сервер (так как серверы БД и сервер приложений разделены наиболее предпочтительным будет сервер приложений) srv-app (для примера папка с патчем будет располагаться в корне с названием patch)

scp -P {port} patch_{version}.zip root@srv-app:/patch/patch_{version}.zip

Примечание

-P {port} необходимо указывать только в случае, если порт отличается от стандартного – 22.

Примечание

{version} – версия патча

Далее переходим на целевой сервер srv-app и распаковываем архив

ssh root@srv-app -p {port}
cd /patch
unzip patch_{version}.zip -d /patch

В результате появится каталог /patch/patch_{version}.

Создание резервных копий

Перед обновлением строго рекомендуется сделать резервные копии. Для примера будем формировать полную резервную копию всех возможных компонентов в папку /patch/backup на целевом сервере srv-app.

Делаем резервную копию сервера приложений

cp -r /usr/local/xsquare.pghs /patch/backup/usr/local

Делаем резервную копию административного сервера приложения

cp -r /usr/local/xsquare.xrad /patch/backup/usr/local

Делаем резервную копию UI сервера приложений

cp -r /var/www/pghs.xsquare /patch/backup/var/www/pghs.xsquare

Делаем резервную копию дополнительных настроек UI для сервера приложений

cp -r /var/www/pghs.xsquare.files.local /patch/backup/var/www/pghs.xsquare.files.local

Делаем резервную копию дополнительных настроек UI для административного сервера приложений

cp -r /var/www/xrad.xsquare /patch/backup/var/www/xrad.xsquare

Резервная копия системных настроек apache

cp /etc/apache2/sites-available/pghs.xsquare.conf /patch/backup/etc/apache2/sites-available/pghs.xsquare.conf
cp /etc/apache2/sites-available/xrad.xsquare.conf /patch/backup/etc/apache2/sites-available/xrad.xsquare.conf

Резервная копия системных настроек systemd

cp /etc/systemd/system/xsquare.pghs.service /patch/backup/etc/systemd/system/xsquare.pghs.service
cp /etc/systemd/system/xsquare.xrad.service /patch/backup/etc/systemd/system/xsquare.xrad.service

Резервная копия базы данных. Т.к. база данных расположена на другом сервере (srv-db), то все действия проводятся именно на этом сервере

ssh root@srv-db -p {port}
su - postgres
pg_dump -U xrad_user  -h 127.0.0.1 -d xraddb  > /var/lib/pgsql/13/backups/2022_10_20_13_xrad.xsquare.pgsql
logout
zip /patch/postgres.zip /var/lib/pgsql/13/backups/2022_10_20_13_*.pgsql
scp -P {port} /patch/postgres.zip root@srv-app:/patch/backup/postgres.zip

Примечание

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

Установка обновления (этап 1)

Все действия проводятся на целевом сервере srv-app.

Все действия производить от пользователя root

whoami
root

Останавливаем сервисы

Останавливаем сервер приложений

systemctl stop xsquare.pghs.service

Проверяем что сервер приложений остановлен

systemctl status xsquare.pghs.service

Останавливаем административный сервер приложений

systemctl stop xsquare.xrad.service

Проверяем что административный сервер приложений остановлен

systemctl status xsquare.xrad.service

Копируем каталоги (предполагаем что находимся в каталоге патча /patch/patch_{version})

Если в патче существует каталог usr

cp -r ./usr /

Если в патче существует каталог etc

cp -r ./etc /

Если в патче существует каталог var

cp -r ./var /

Установка обновления (этап 2)

На данном этапе производится обновление БД. Для начала обновления необходимо передать файл script.sql на целевой сервер srv-db

scp -P {port} script.sql root@srv-db:/patch/script.sql

Примечание

-P {port} необходимо указывать только в случае, если порт отличается от стандартного – 22.

Внимание

Если на этапе подготовки не была сделана резервная копия, то рекомендуется её сделать на данном этапе

Дальнейшие действия производим от пользователя postgres на целевом сервере srv-db

ssh root@srv-app -p {port}
su - postgres

Выполнить скрипт script.sql на базе данных xraddb

psql -a --single-transaction -U xrad_user -h 127.0.0.1 xraddb  -f /patch/script.sql

Установка обновления (этап 3. Завершающий)

Завершающим этапом обновления является запуск сервера приложений очистка серверов от не нужных более файлов. Данный этап может быть пропущен или выполнены только самые необходимые действия.

Запускам сервисы

Обновляем информацию по сервисам

systemctl daemon-reload

Запускаем сервер приложений

systemctl start xsquare.pghs.service

Проверяем что сервер приложений запущен

      systemctl status xsquare.pghs.service
● xsquare.pghs.service - XSQUARE PGHS Services
   Loaded: loaded (/etc/systemd/system/xsquare.pghs.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2022-10-20 19:53:52 MSK; 1min 28s ago
 Main PID: 237073 (pghs)
    Tasks: 6 (limit: 4670)
   Memory: 2.1M
      CPU: 9ms
   CGroup: /system.slice/xsquare.pghs.service
           └─237073 /usr/local/xsquare.pghs/pghs

Если сервер приложений запустить не удалось, то необходимо поправить права доступа на исполнение файла

chmod 744 /usr/local/xsquare.pghs/pghs

И повторить попытку запуска сервера приложений.

Запускаем административный сервер приложений

systemctl start xsquare.xrad.service

Проверяем что административный сервер приложений запущен

     systemctl status xsquare.xrad.service
     ● xsquare.xrad.service - XSQUARE XRAD Services
  Loaded: loaded (/etc/systemd/system/xsquare.xrad.service; enabled; vendor preset: disabled)
  Active: active (running) since Thu 2022-10-20 19:53:52 MSK; 1min 28s ago
Main PID: 237073 (pghs)
   Tasks: 6 (limit: 4670)
  Memory: 2.1M
     CPU: 9ms
  CGroup: /system.slice/xsquare.xrad.service
          └─237073 /usr/local/xsquare.xrad/xrad

Если административный сервер приложений запустить не удалось, то необходимо поправить права доступа на исполнение файла

chmod 744 /usr/local/xsquare.xrad/xrad

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

Очистка сервера БД

Действия выполняются на целевом сервере srv-db.

Если были сделаны дампы БД, то удаляем файлы дампа

rm /var/lib/pgsql/13/backups/2022_10_20_13_app.xsquare.pgsql
rm /var/lib/pgsql/13/backups/2022_10_20_13_xrad.xsquare.pgsql

Удаляем папку /patch (рекомендуется)

rm -r /patch

Очистка сервера приложений

Если были сделаны резервные копии БД, то их можно не разархивировать, чтобы при необходимости восстановления не было необходимости повторной архивации для уменьшения объема передачи на сервер БД.

Архивируем резервную копию

zip -r /patch/2022_10_20_13_backup.zip /patch/backup/*

Удаляем ненужные более каталоги и файлы

rm -r /patch/backup
rm -r /patch/patch_{version}
rm /patch/patch_{version}.zip

Файл /patch/2022_10_20_13_backup.zip сохраняем в хранилище резервных копий или оставляем в папке /patch.