- Описание функциональных характеристик системы
- Поддержание жизненного цикла
- Установка PromUC
- Настройка сервисов
- Обновление PromUC
- Резервное копирование и восстановление базы данных Promuc FrameWork
- Рекомендации по безопасности
- Руководство по эксплуатации и администрированию
- Module GIS
- Конфигурирование правил и сценариев
- Module Framework
- Module Interface
- Технологии проекта
- Эксплуатация КТС
- Единый сервис аутентификации
- Информация о релизах
Обновление PromUC¶
Обновление установочных файлов¶
Обновление установочных файлов проводится посредством запуска скрипта upgrade.sh
, который располагается в корневом каталоге дистрибутива, а также его можно скачать с адреса https://download.promuc.ru/upgrade.sh:
# cd /opt/promuc
# wget --no-check-certificate https://download.promuc.ru/upgrade.{sh,sh.sha256}
# shasum -c upgrade.sh.sha256
upgrade.sh: OK
Краткую справку скрипта можно вызвать запустив с ключом -h
:
# /opt/promuc/upgrade.sh -h
Скрипт обновления установки Promuc
Запуск: upgrade.sh -h | -d | [-r] -f <filename>
-f <filename> - файл дистрибутива для обновления
-d - скачать дистрибутив для обновления
-r - восстановление из указанного файла
-h - вызов этой справки
Для выполнения обновления скрипту необходимо передать путь и имя файла дистрибутива. Можно использовать как облегчённый вариант дистрибутива, так и полный. Например:
# ./upgrade.sh -f ../promuc-debian.tar.gz
или
# ./upgrade.sh -f /opt/promuc-full-debian.tar.gz
Если использовать опцию -d
, то будет выполнено скачивание дистрибутива с сайта:
# ./upgrade.sh -d
Внимание! данный скрипт заменит существующие установочные файлы в /opt/promuc и
пересоздаст контейнеры PromUC.
Будет создана резервная копия заменяемых файлов в /opt/promuc/install/.
Для восстановления предыдущей версии используйте upgrade.sh -r -f <имя файла>.
Скачиваем файл дистрибутива, без docker-образов (1) или полный (2): 1
Файл дистрибутива будет сохранён в /opt/promuc-debian.tar.gz
Обнаружен файл дистрибутива /opt/promuc-debian.tar.gz, будет переименован в
/opt/promuc-debian.tar.gz.old
В ходе выполнения скрипта проводится сравнение версий установленного комплекса и дистрибутива, сравнение хэш-сумм установочных файлов. Если используется полный дистрибутив, то дополнительно будут сравнены файлы docker-образов сервисов. Перед заменой файлов будет произведено резервное копирование в файл ./install/upgrade_<Дата>.tar.gz
:
Получаем дистрибутив c адреса https://download.promuc.ru/promuc-debian.tar.gz
######################################################################## 100.0%
Распаковываем дистрибутив в /tmp/upgrade
Исходный файл содержит версию v1.4, используемая версия v1.3.3
Будут заменены файлы:
upgrade.sh
version
doc/install.sh
framework/install.sh
gitea/install.sh
pgadmin/install.sh
portainer/install.sh
proxy/cert.sh
proxy/install.sh
rabbitmq/install.sh
ruleengine/install.sh
scada/docker-compose.yml
scada/install.sh
updater/install.sh
Резервные копии заменяемых файлов будут сохранены в
/opt/promuc/install/upgrade_221101122721.tar.gz
Для их восстановления используйте команду
/opt/promuc/upgrade.sh -r /opt/promuc/install/upgrade_221101122721.tar.gz
Внимание! Требуется пересоздание контейнеров сервисов, т.к. планируются изменения в
файлах сервисов или в docker-образах.
Продолжаем? (y/n):
Предупреждение
В случае необходимости обновления установочных файлов сервисов или их файлов docker-образов обязательно будет выполняться пересоздание контейнеров образов, это не затрагивает данные.
При обновлении docker-образов сервисов PromUC будет выполнено сравнение метки даты создания образа и в случае если загружаемый образ создан ранее используемого необходимо будет подтвердить замену. При отказе будет восстановлен ранее используемый образ:
Загружаем обновлённые docker-образы...
Обновляем docker-образ psm/promuc-scada
Уже имеется загруженный docker-образ psm/promuc-scada:latest c id a630502d9a86, проверяем даты создания...
The image psm/promuc-scada:latest already exists, renaming the old one with ID sha256:a630502d9a8634abbff2c200861cd071a102a1df34c0f5d77e7b576ebd5dd370 to empty string
Loaded image: psm/promuc-scada:latest
Внимание! В файле содержится образ psm/promuc-scada предыдущей версии.
Использовать его? (y/n): n
Образ a630502d9a86 восстановлен в psm/promuc-scada:latest
Файл docker-образа восстановлен в /opt/promuc/images/psm_promuc-scada.bz2
По окончании будет предложено запустить сервисы если они были остановлены во время обновления.
Восстановление установочных файлов¶
Для отката изменений, восстановления установочных файлов необходимо запустить скрипт upgrade.sh
с ключами -r -f <filename>
:
# ./upgrade.sh -f /opt/promuc/install/upgrade_221101123321.tar.gz -r
Будет выполнено восстановление файлов из резервной копии
/opt/promuc/install/upgrade_221101130531.tar.gz в /opt/promuc.
Контейнеры сервисов будут пересозданы.
Продолжаем? (y/n): y
Проверяем целостность архива...
Будут восстановлены файлы:
doc/install.sh
framework/install.sh
scada/install.sh
version
Будут восстановлены docker-образы:
images/psm_ruleengine-transport.bz2
images/psm_promuc-doc.bz2
Продолжаем? (y/n):
Примечание
При восстановлении резервное копирование не выполняется.
Обновление сервисов¶
Обновление сервисов проводится посредством запуска скрипта update.sh
с указанием конкретного сервиса (папка сервиса). Например:
# ./update.sh framework
Получаем файл с psm/promuc_framework:latest
Получаем psm/promuc_framework:latest с сайта https://download.protei-sm.ru
########################################################################################## 100.0%
Импортируем образ psm/promuc_framework:latest в docker...
Loaded image: psm/promuc_framework:latest
Рестартуем сервис framework
Выполнение docker compose up -d для framework...OK
Скрипт получает docker-образ с сайта https://download.protei-sm.ru посредством скрипта getimages.sh
, сохраняет в папку images
и пересоздаёт контейнер сервиса с новым образом.
Примечание
Если полученный с сайта образ соответствует уже загруженному в docker, то контейнер не пересоздаётся.
Обновление docker-образов¶
В случае необходимости проведения самостоятельного или поэтапного обновления возможно получение отдельного обновлённого docker-образа сервиса с сайта https://download.protei-sm.ru или иного указанного в переменной PROMUC_DOWNLOAD_URL
в корневом файле .env
. В этом случае полученный файл docker-образа сохраняется с заменой существующего файла в папке images
и подгружается в docker, контейнер сервиса при этой операции не пересоздаётся.
Версия docker-образа сервиса указывается посредством переменной _TAG
в файле .env
каталога сервиса.
Для получения образа необходимо запустить скрипт getimages.sh
с указанием наименования docker-образа, нескольких образов (разделяя пробелом) или без указания для получения образов всех сервисов. Например:
root@vpn1:/opt/services# ./getimage.sh -p psm/promuc_framework:latest
Получаем образ psm/promuc-framework:latest
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 39.4M 100 39.4M 0 0 88.9M 0 --:--:-- --:--:-- --:--:-- 88.7M
Loaded image: psm/promuc-framework:latest
Примечание
Флаг -p
включает принудительную загрузку файла docker-образа с сайта независимо от наличия в папке images
.
Сервис |
Файл docker-образа |
---|---|
proxy |
traefik:v2.11.13 |
postgres |
timescale/timescaledb-ha:pg14.10-ts2.12.2-all |
redis |
redis:7.2 |
rabbitmq |
rabbitmq:3.13-management |
framework |
psm/promuc_framework:latest |
gitea |
psm/gitea:latest |
ruleengine |
psm/promuc_flow:latest, psm/ruleengine:latest, psm/ruleengine-transport:latest |
updater |
psm/updater:latest |
Порядок проверки состояния сервисов¶
Чтобы проверить состояние сервисов можно воспользоваться стандартными командами docker
или скриптом do.sh
:
# ./do.sh framework ps
Выполнение docker compose ps для framework...
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
framework psm/promuc_framework:latest "/usr/sbin/lighttpd …" framework 56 minutes ago Up 56 minutes 80/tcp, 9595-9599/tcp