Эксплуатация¶
Настройка 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 на нескольких серверах:
srv-app
– является сервером приложения. На данном сервер запущены следующие службы:
apache2
– веб-сервер
xsquare.pghs
– сервер приложений (PGHS)
xsquare.xrad
– административный сервер приложений (XRAD)
srv-db
– сервер базы данных (далее БД)
Описание архива¶
Обновления распространяются в виде ZIP-архивов которые имеют имя в формате patch_{version}.zip
и содержат следующие элементы:
Скрипт обновления, который необходимо выполнить на БД –
script.sql
Папка
usr/local
(в случае, если требуется обновление сервисов) содержащая папки (наличие папок и файлов в них зависит от необходимости обновления. Если необходимости обновления нет, то не будет соответствующей папки и/или файла):
xsquare.pghs
– содержит в себе файлы сервера приложений (PGHS):pghs
– исполняемый файл сервиса;config.json
– конфигурационный файл сервиса.
xsquare.xrad
– содержит в себе файлы административного сервера приложений (XRAD):xrad
– исполняемый файл сервиса;config.json
– конфигурационный файл сервиса.
Папка
etc
(в случае, если требуется обновление каких-либо системных настроек). Может содержать в себе следующие папки:
apache2/httpd
– обновление настроек сервера apache. Содержит папки с файлами конфигурации сервера.
systemd
– обновление настроек системы управления сервисами LINUX. Содержит папки с файлами конфигурации сервисов.
Папка
var/www
(в случае, если требуется обновление UI для PGHS и/или XRAD). Может содержать в себе следующие папки:
pghs.xsquare
– папка содержит UI для PGHS.
pghs.xsquare.files.local
– папка содержит дополнительные файлы настройки UI для PGHS, не относящиеся непосредственно к базовой конфигурации UI.
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
.