Skip to main content
Version: yakutsk11

ESC1_Server

Автоматическая установка ESC1.Server

Подключить репозитории MVS в CentOS, Ubuntu

Установить метапакет CentOS:

sudo yum -y install mvs-esc1-service-setup

Перед установкой метапакета Ubuntu:

  1. Добавить репозиторий и ключ nginx
  2. sudo apt -y install python-apt

Установить метапакет Ubuntu:

sudo apt -y install mvs-esc1-service-setup

Заполнить файл автоконфигурации: /etc/mvs.esc1/options.yml

ESC1:
Server:
...
fqdn: resolvable.mvsserive.ru ## domain name for nginx to connect to ESC1 master SPA
...
rabbitmq:
...
Password: Rabbitmq_passw0rd ## rabbitmq password. Mandatory

PresetOptions:
PresetsCount: 9 ## Number of presets used by the server, Range: 1-100, default 4

Значения ESC1.rabbitmq.Address, ESC1.rabbitmq.User и ESC1.rabbitmq.Password должны корреллировать с параметрами экземпляра rabbitmq-server, к которому подключается Lyra3.OR.Serever.API.

Автонастройка:

sudo mvsesc1ctl setup

Добавить в автозагрузку и запустить сервис:

sudo systemctl enable --now ESC1.Server.API.service

Проверить состояние службы:

systemctl status ESC1.Server.API.service

Ключи mvsesc1ctl:

InitDatabase - Initialize database. All data will be lost !!!
ImportPlcVariablesMap </path/to/ymlfile> - Import PLC variables map.
ResetMasterPassword - Set new password for "Master" user. Old one will be dropped!!!
ImportRSAPrivateKey </path/to/pemfile> - Set new private key. Old one will be dropped!!!
ImportRSAPublicKey </path/to/pemfile> - Set new public key. Old one will be dropped!!!

SetMasterPasswordToDefault - Set "master" as password for "Master" user.
restart - restart services
reconfigure - fetch settings from options.yml file, then restart
checkconfig - emulate config changes according to options.yml
setup - set up environment and configure server

rabbitmq ops:
setup_rabbitmq - Установка и конфигурация rabbitmq-server (не требуется, если был выполнен setup )
reconfigure_rabbitmq - configure rabbitmq in case of changes in hostname or options.yml cm

Wago.API feature:
setup_wagoapi - install and configure Wago.API

StartStopClip feature

За работу функционала отвечает приложение ESC1.Wago.API, которая по умолчанию не устанавливается. Для включения функционала необходимо:

  • Указать валидный адрес plc-контроллера в секции configMap ESC1.Wago.Address
  • раскомментировать секцию Lyra3.OR в configMap
Lyra3:
OR:
PedalEventEnabled: 'true' ## Set to true to enable feature
Server:
URL: http://127.0.0.1:3319 ## Lyra3.OR.Server.API URL
  • выполнить mvsesc1ctl setup_wagoapi

Подробнее настройка ESC1.Wago.API описана в разделе Установка ESC1.Wago.API в ручном режиме.

В случае самостоятельной настройки nginx изменить имя домена в конфигурации nginx: /etc/nginx/conf.d/ESC1.Server.Web.conf

server {
listen 80;
server_name <domain_name>;
root /srv/MVS.ESC1.Server.Web;

if ($scheme != "https") {
rewrite ^ https://$host$uri permanent;
}
}

server {
listen 443 ssl;
server_name <domain_name>;

root /srv/MVS.ESC1.Server.Web;

location / {
index index.html;
try_files $uri /index.html;
}
...
}

Перезапустить nginx:

sudo systemctl restart nginx

Прописываем сертификаты, аналогично пункту настройка госпитального nginx

В файле /etc/nginx/conf.d/mvs.default_http_with_redirect.conf меняем порт на 8081 и ребутим nginx.

В случае внесения изменений в файл plc.config.default.yml импортируем его при помощи утилиты mvsesc1ctl

sudo mvsesc1ctl ImportPlcVariablesMap /full_path/plc.config.default.yml

Установка ESC1.Server в ручном режиме

CentOS:

sudo yum -y install mvs-esc1-master-cli mvs-esc1-server-api mvs-esc1-server-web mvs-esc1-nginx-samples

Ubuntu:

sudo apt -y install mvs-esc1-master-cli mvs-esc1-server-api mvs-esc1-server-web mvs-esc1-nginx-samples

config

Рекомендуемые параметры приложения: /etc/mvs.esc1/ESC1.Server.API.yml

ListenOptions:
Address: "127.0.0.1"
Port: 3012
...
SettingsStorageOptions:
ConnectionString: "/var/lib/mvs.esc1/settings.db"

EventsStorageOptions:
ConnectionString: "/var/lib/mvs.esc1/events.db"

TrendsStorageOptions:
ConnectionString: "/var/lib/mvs.esc1/trends.db"

...
RabbitMQOptions:
ConnectionURI: "amqp://mvslyra3or:<Password>@127.0.0.1:5672"
EnvironmentStateExchangeName: EngineeringSystemEnvironmentStateExchange
...

LicenseServiceOptions:
LibraryPath: <path_to_rtPKCS11ecp library>

## add in yakutsk11
PresetOptions:
## Number of presets used by the server. Range: 1-100, default 4
PresetsCount: 9
##

Подробнее о значении параметра LicenseServiceOptions.LibraryPath.

Генерация ключевой пары приложения:

mkdir -p /var/lib/mvs.esc1/rsaKeys
openssl genrsa -out /var/lib/mvs.esc1/rsaKeys/esc1.privateKey.pem 2048
openssl rsa -in /var/lib/mvs.esc1/rsaKeys/esc1.privateKey.pem -pubout -RSAPublicKey_out -out /var/lib/mvs.esc1/rsaKeys/esc1.publicKey.pem

Ключевая пара используется для генерации jwt-токенов. При изменениии ключевой пары (после загрузки ее в БД) потребуется перевыпустить токены клиентских приложений.

Инициализация базы данных:

sudo mvs-esc1-master-cli InitDatabase
sudo mvs-esc1-master-cli ImportRSAPrivateKey /var/lib/mvs.esc1/rsaKeys/esc1.privateKey.pem
sudo mvs-esc1-master-cli ImportRSAPublicKey /var/lib/mvs.esc1/rsaKeys/esc1.publicKey.pem
sudo mvs-esc1-master-cli ImportPlcVariablesMap /etc/mvs.esc1/plc.config.default.yml
sudo chown -R mvsservice: /var/lib/mvs.esc1

NB!: при обновлении пакета PLCVariablesMap будет создан в виде /etc/mvs.esc1/plc.config.default.yml.rpmnew. Исходный файл PLCVariablesMap всегда устанавливается по адресу /usr/share/mvs.esc1/plc.config.default.yml.example

После инициализации БД приложение готово к работе:

sudo systemctl enable --now ESC1.Server.API.service

Настройка nginx:

  • Скопировать сэмплы:
sudo mkdir -p /etc/nginx/{ssl,include}
sudo cp -r /usr/share/mvs.esc1/ESC1.nginx.samples/nginx/* /etc/nginx
  • Заменить в файле /etc/nginx/conf.d/ESC1.Server.Web.conf <esc1.server.name> на корректное доменное имя.
  • Если у сервера ESC1.Server.API указан не стандартный (3012) порт, необходимо также заменить его в диреткивах proxy_pass
  • Скопировать ключевую пару для nginx в каталог /etc/nginx/ssl. Умолчальные значения имен: server.privateKey.pem для приватного ключа, server.cert.crt для сертификата. Владельцем файлов сделать nginx, разрешения на приватный ключ - 400

Если ключевой пары пока что нет, можно сгенерировать самоподписанный сертификат:

sudo openssl req -new -newkey rsa:2048 -days 365 -nodes -x509 -keyout /etc/nginx/ssl/server.privateKey.pem -out /etc/nginx/ssl/server.cert.crt -subj "/C=RU/ST=RU/L=Default/O=MVS/CN=Service"
sudo chown nginx: /etc/nginx/ssl/{server.cert.crt,server.privateKey.pem}
sudo chmod 400 /etc/nginx/ssl/server.privateKey.pem
  • Перезапустить nginx
systemctl restart nginx
  • проверить приложение мастер по указанному адресу.

Оптимизация алгоритма опроса plc для OWEN

БУИС (plc-контроллеры) OWEN производят опрос на порядок медленнеее, чем WAGO. Для ускорения отклика реализован опрос контроллера не по одному параметру, а диапазонами. Для включения этого адгоритма необходимо установить флаг PlcOptions.UseOwenSurveyAlgorithm: true

PlcOptions:
...
# Use "OWEN" registers survey algorithm: default "false"
UseOwenSurveyAlgorithm: true

Лицензирование ESC1 Server

Подробнее: Подготовка к работе с ruToken

Необходимые зависимости устанавливаются с пакетом ESC1.Server.API. Для работы нужно запустить соответствующие службы:

sudo systemctl enable --now pcscd pcscd.socket

Для работы с rutoken ESC1.Server.API нужно указать соотвествующий параметр в конфигурации:

LicenseServiceOptions:
LibraryPath: /usr/lib64/librtpkcs11ecp.so

Создание запроса на получение лицензии, ее выпуск подробно описаны в разделе выпуск лицензий MVS

После получения файла лицензии он загружается через Master SPA.

Обновление ESC1.Server до версии saratov

  • Обновить пакеты до версии 2.8.0
sudo yum install -y mvs-esc1-service-setup

Для обновления в ручном режиме нужно установить пакеты:

  • mvs-esc1-server-api
  • mvs-esc1-master-cli
  • mvs-esc1-server-web

При использовании для обновления пакета mvs-esc1-service-setup требуется заполнить файл автоконфигурации в соответствии с вновь созданным /etc/mvs.esc1/options.yml.rpmnew Минимальная конфигурация /etc/mvs.esc1/options.yml:

ESC1:
Server:
fqdn: <set_it_up> ## domain name for nginx to connect to ESC1 master SPA
WagoAPI: ### ESC1.Wago.API settings. Normally disabled.
Wago:
ELEPS:
rabbitmq:
User: mvslyra3or ## rabbitmq username. Mandatory
Password: <set_it_up> ## rabbitmq password. Mandatory
Address: '127.0.0.1' ## Will only deploy rabbitmq automatically when Address set to 127.0.0.1
  • Остановить службу:
sudo systemctl stop ESC1.Server.API

Проверить конфигурацию, при необходимости внести правки в options.yml:

sudo mvsesc1ctl checkconfig
  • Переименовать файл events.db (старый формат не поддерживается):
mv /var/lib/mvs.esc1/events.db /var/lib/mvs.esc1/events.db.old
  • Загрузить plc.config
sudo -u mvsservice mvs-esc1-master-cli ImportPlcVariablesMap /usr/share/mvs.esc1/plc.config.default.yml.example

либо

sudo mvsesc1ctl ImportPlcVariablesMap /usr/share/mvs.esc1/plc.config.default.yml.example

Обновить файлы конфигурации:

sudo mvsesc1ctl reconfigure

Запустить службы

sudo systemctl start ESC1.Server.API