============= Эксплуатация ============= Настройка 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) :: 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 Включаем сайты 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) 2. ``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`` – конфигурационный файл сервиса. 3. Папка ``etc`` (в случае, если требуется обновление каких-либо системных настроек). Может содержать в себе следующие папки: 1. ``apache2/httpd`` – обновление настроек сервера apache. Содержит папки с файлами конфигурации сервера. 2. ``systemd`` – обновление настроек системы управления сервисами LINUX. Содержит папки с файлами конфигурации сервисов. 4. Папка ``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 .. note:: **-P {port}** необходимо указывать только в случае, если порт отличается от стандартного – 22. .. note:: **{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 .. note:: При обновлении можно делать не полную резервную копию, а только тех компонентов, которые присутствуют в обновлении Установка обновления (этап 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 .. note:: **-P {port}** необходимо указывать только в случае, если порт отличается от стандартного – 22. .. attention:: Если на этапе подготовки не была сделана резервная копия, то рекомендуется её сделать на данном этапе Дальнейшие действия производим от пользователя ``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``.