ESC1_Server
Автоматическая установка ESC1.Server
Подключить репозитории MVS в CentOS, Ubuntu
Установить метапакет CentOS:
sudo yum -y install mvs-esc1-service-setup
Перед установкой метапакета Ubuntu:
- Добавить репозиторий и ключ nginx
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 в ручном режиме
- Подключить репозитории MVS в CentOS, Ubuntu
- Установить rabbitmq:
- Установить nginx
- Установить пакеты:
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-apimvs-esc1-master-climvs-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