- Created by Victoria Belyaeva, last modified by Eduard Zhitenev on Apr 17, 2025
Актуальная версия ExeMES - 2.0 (релиз от февраля 2025 г.)
Для обновления на версию ExeMES 2.0 необходимо выполнить последовательно следующие шаги:
Процесс обновления БД MESDB до версии 2.0 возможен, начиная с версии 1.3. Для обновления до версии 1.3 см. пункт Обновление на версию 1.3.
Перед обновлением выполните процедуру резервного копирования БД MESDB.
Проверка актуальности версии БД MESDB и обновление версии производится из интерфейса ExeMES Client. Для проверки и обновления БД MESDB выполните следующие шаги:
- Пройдите стандартную процедуру авторизации в ExeMES Client
- Проверьте актуальность версии БД MESDB:
- Воспользуйтесь всплывающим меню, которое вызывается по нажатию на иконку пользователя в статусной строке ExeMES Client
Кнопка перехода на страницу обновления
- Во всплывающем меню выберите пункт «Версия №», после чего откроется страница проверки и обновления версии базы данных MES. Для проверки актуальности версии БД нажмите на кнопку «Проверить актуальность БД». Результаты проверки отобразятся на странице ниже
Страница проверки и обновления базы данных MES
- В случае актуальной версии БД MESDB сообщение будет следующим:
Версия БД актуальна
- В случае необходимости обновления версии БД MESDB появится сообщение о необходимости обновления и информация об изменениях, которые будут внесены в БД MESDB
Необходимо обновление
- Воспользуйтесь всплывающим меню, которое вызывается по нажатию на иконку пользователя в статусной строке ExeMES Client
- Обновите версию БД MESDB если она неактуальна:
- Для обновления БД MESDB нажмите на кнопку «Обновить версию БД» на странице с результатами проверки актуальности БД, после чего подтвердите действие во всплывающем окне
Подтверждение обновления версии БД
- После завершения обновления БД появится сообщение об успешном обновлении и лог процесса обновления
Сообщение об успешном обновлении и лог процесса обновления
- Если в процессе обновления БД возникнет ошибка, обратитесь в службу ТП ExeMES
Ошибка обновления БД MESDB
- Для обновления БД MESDB нажмите на кнопку «Обновить версию БД» на странице с результатами проверки актуальности БД, после чего подтвердите действие во всплывающем окне
Для возможности работы с новыми приложениями ExeMES RuntimeClient и ExeSched необходимо импортировать конфигурацию новых клиентов в существующий реалм Keycloak. Для этого выполните следующие шаги:
- Зайдите в приложение Keycloak под администратором реалма и выберите в выпадающем списке реалм «exemes»
Выбор реалма
- В левом боковом меню выберите пункт «Clients»
Пункт Clients
- В центральной части экрана нажмите на кнопку «Import Client»
Импорт клиента
- Ниже в центральной части экрана нажмите «Browse...»
Выбор файла для импорта
- Выберите файл exemesruntime-client.json из папки upd, которая находится в составе дистрибутива exemes 2.0 и нажмите кнопку «Открыть»
Выбор файла exemesruntime-client.json
- После завершения загрузки файла, переместитесь в конец страницы и нажмите кнопку «Save»
Сохранение конфигурации
- Аналогичные действия необходимо произвести со вторым файлом в папке upd: exesched.json
- После завершения импорта конфигурации убедитесь что новая конфигурация появилась в списке клиентов
Проверка списка импортированных клиентов
Для корректной работы новых приложений ExeMES RuntimeClient и ExeSched необходимо создать и настроить роли в импортированных клиентах:
- Выберите в списке клиентов «exemesruntime-client».
- В центральной части экрана перейдите на вкладку «Roles» и нажмите на кнопку «Create role»
Создание роли для exemesruntime-client
- Ниже заполните поля Role name и Description, в завершении нажмите кнопку «Save»
Сохранение роли для exemesruntime-client
- Таким образом, создайте 4 роли с описаниями:
- Role name = Inventory, Description = Доступ к экрану управления складскими остатками;
- Role name = Operator, Description = Доступ к панели оператора;
- Role name = Quality, Description = Доступ к экрану управления качеством;
- Role name = Utilization, Description = Доступ к экрану управления событиями оборудования.
- В центральной части экрана перейдите на вкладку «Roles» и нажмите на кнопку «Create role»
- Вернитесь к списку клиентов и выберите «exesched»
- Для exesched создайте 1 роль:
- Role name = Scheduler, Description = Планировщик.
- Для exesched создайте 1 роль:
- Назначьте новые роли соответствующим группам пользователей, в зависимости от Вашей конфигурации. Подробно об Управлении доступом к ExeMES.
Для корректной работы механизма разграничения прав доступа по объектам выполните следующие шаги:
- Добавьте новые роли соответствующим группам пользователей, в зависимости от Вашей конфигурации.
- Выберите в левом меню вкладку «Clients» далее выберите пункт «mesmiddleware»
Выбор клиента mesmiddleware
- В центральной части экрана выберите вкладку «Roles» и нажмите кнопку «Create Role»
Создание роли для mesmiddleware
- В новом окне заполните поля Role name и Description. Таким образом для клиента mesmiddleware должно быть создано 2 роли:
- Role name = VAccess, Description = View Access Management;
- Role name = EAccess, Description = Edit Access Management.
- Назначьте новые роли группам пользователей, в зависимости от конфигурации Вашей системы. Подробно об Управлении доступом к ExeMES.
- Выберите в левом меню вкладку «Clients» далее выберите пункт «mesmiddleware»
- Добавьте существующие роли реалма группам пользователей, отвечающим за настройку доступа к объектам.
- Добавьте роль view-users (существующая);
Добавление роли view-users
- Добавьте роль manage-authorization (существующая).
Добавление роли manage-authorization
- Добавьте роль view-users (существующая);
- Добавьте роль realm-management/view-clients для сервисного аккаунта клиента mesmiddleware.
- Перейдите в левом меню на вкладку «Clients»;
- Выберите пункт «mesmiddleware»;
- В центральной части экрана перейдите на вкладку «Service Account Roles» и нажмите на кнопку «Assign role»;
Добавление роли для сервисного аккаунта клиента mesmiddleware
- В появившемся окне выберите фильтр «Filter by clients»;
- Введите в поле фильтра «view-clients»;
- Выберите роль «view-clients» и нажмите кнопку «Assign».
Добавление роли для сервисного аккаунта клиента mesmiddleware
- Добавьте образы новых приложений в docker. Для этого находясь в папке /images/ дистрибутива ExeMES 2.0 выполните следующие команды:
docker load -i ./exemesmiddleware2.0.tar docker load -i ./exemesclient2.0.tar docker load -i ./exeruntimeclient1.0.tar docker load -i ./exesched1.0.tar
- Укажите новый образ для ExeMES Server (Middleware):
image: "git.exeplant.ru:5050/mes-develop/exemesmiddleware:2.0"
- Сконфигурируйте новую переменную окружения для ExeMES Server (Middleware):
EntityAccessProtection: "Enabled"
Переменная EntityAccessProtection активирует функционал разделения прав доступа по объектам.
Если Вы не планируете использовать этот функционал, можете не указывать эту переменную, либо сконфигурируйте её, указав:
EntityAccessProtection: "Disabled"
- Укажите новый образ для ExeMES Client:
image: "git.exeplant.ru:5050/mes-develop/exemesclient:2.0"
- Скопируйте папки data/exeruntimeclient и data/exesched в папку с установленным ПО ExeMES (по умолчанию root/dev/);
- Добавьте в файл docker-compose (по умолчанию root/dev/) конфигурацию приложения ExeMES RuntimeClient и ExeSched;Приложение ExeSched
exesched: container_name: exesched image: "git.exeplant.ru:5050/mes-develop/exesched:1.0" restart: always environment: MiddlewareApiRootUri: "https://middleware.mycompany.local:7142/api" TZ: "Europe/Moscow" ASPNETCORE_URLS: "https://+;http://+" ASPNETCORE_HTTPS_PORT: "8135" ASPNETCORE_Kestrel__Certificates__Default__Password: "1" ASPNETCORE_Kestrel__Certificates__Default__Path: "/root/.aspnet/https/EXESched.pfx" GCCSettings:BroadcastRemoteLicenses: "0" GCCSettings:UseRemoteHosts: "1" GCCSettings:Remotehosts: "[license_server_ip]" DBConnection: "Server=some-postgres; User Id=postgres; Database=exesched; Port=5432; Password=postgres; SSLMode=Prefer" ports: - "8135:443" volumes: - type: bind source: /root/dev/data/exesched/keycloak.json target: /App/keycloak.json - type: bind source: /root/dev/data/exesched/appsettings.json target: /App/appsettings.json - type: bind source: /root/dev/crt/EXESched.pfx target: /root/.aspnet/https/EXESched.pfx - type: bind source: /root/dev/crt/wildcard.mycompany.local.crt target: /etc/ssl/certs/wildcard.mycompany.local.pem extra_hosts: - "mes-runtime.mycompany.local client.mycompany.local middleware.mycompany.local exesched.mycompany.local keycloak.mycompany.local:[host_ip]"
Приложение ExeMES RuntimeClientexeruntimeclient: container_name: exeruntimeclient image: "git.exeplant.ru:5050/mes-develop/exeruntimeclient:1.0" restart: always environment: MiddlewareApiRootUri: "http://exemesmiddleware/api" TZ: "Europe/Moscow" ASPNETCORE_URLS: "https://+;http://+" ASPNETCORE_HTTPS_PORT: "8143" ASPNETCORE_Kestrel__Certificates__Default__Password: "1" ASPNETCORE_Kestrel__Certificates__Default__Path: "/root/.aspnet/https/EXEMESClient.pfx" GCCSettings:BroadcastRemoteLicenses: "0" GCCSettings:UseRemoteHosts: "1" GCCSettings:Remotehosts: "[license_server_ip]" ports: - "8143:443" volumes: - type: bind source: /root/dev/data/exeruntimeclient/keycloak.json target: /app/keycloak.json - type: bind source: /root/dev/data/exeruntimeclient/appsettings.json target: /App/appsettings.json - type: bind source: /root/dev/crt/wildcard.mycompany.local.pfx target: /root/.aspnet/https/EXEMESClient.pfx - type: bind source: /root/dev/crt/wildcard.mycompany.local.crt target: /etc/ssl/certs/wildcard.mycompany.local.pem extra_hosts: - "mes-runtime.mycompany.local client.mycompany.local middleware.mycompany.local keycloak.mycompany.local:[host_ip]"
Обратите внимание, что новые приложения используют уже существующие сертификаты, проверьте правильность указания пути к файлам сертификатов (используйте аналогию с ExeMES Server (Middleware)).
Конфигурация использования сертификатов- type: bind source: /root/dev/crt/EXESched.pfx target: /root/.aspnet/https/EXESched.pfx - type: bind source: /root/dev/crt/wildcard.mycompany.local.crt target: /etc/ssl/certs/wildcard.mycompany.local.pem
Параметры [license_server_ip] и [host_ip] должны быть скорректированы под Вашу конфигурацию (используйте аналогию с конфигурацией Вашего приложения ExeMES Server (Middleware)).
Параметры подключения к контейнеру БД Postgre указаны в конфигурации приложений по умолчанию. Для альтернативной БД сконфигурируйте соответствующие переменные окружения.
- После завершения редактирования файла docker compose выполните перезапуск измененных и запуск добавленных контейнеров, выполнив команду:
docker compose up -d
Процесс обновления БД MESDB до версии 1.3 возможен только с версии 1.2. Для обновления до версии 1.2 см. пункт Обновление на версию 1.2
Обновление БД производится из интерфейса ExeMES Client. Для корректной работы функционала обновления необходимо предварительно выполнить следующие действия:
Необходимо создать в существующем реалме Keycloak новые роли, для этого:
- Зайдите в приложение Keycloak под администратором реалма и выберите в выпадающем списке реалм «exemes»
Выбор реалма
- Выберите в левом боковом меню пункт «Clients»
Пункт Clients
- В центральной части экрана выберите клиент «mesmiddleware»
Выбор клиента mesmiddleware
- Перейдите на вкладку Roles и нажмите кнопку «Create Role»
Создание роли
- Заполните поля в открывшемся окне:
- Role name = EAdm, Description = Edit (manage) Admin Tools.
- Нажмите кнопку «Save»
Сохранение роли
- Создайте еще одну роль по аналогии:
- Role name = VAdm, Description = View Admin Tools.
Для корректной работы функционала обновления БД новые роли необходимо добавить группам пользователей в зависимости от Вашей конфигурации.
- Выберите нужную Вам группу и перейдите на вкладку «Role mapping» в центральной части экрана и нажмите на кнопку «Assign role»
Привязка роли
- Во всплывающем окне выберите фильтр «Filter by clients», правее фильтра в строке поиске укажите имя роли VAdm и нажмите стрелку для поиска. Поставьте галку напротив группы VAdm и нажмите кнопку «Assign»
Назначение роли VAdm
- Аналогично, для разрешения обновления версии БД MESDB группе пользователей добавьте роль EAdm.
Для корректной работы механизма обновления БД MESDB необходимо подключиться к БД MESDB любым клиентом СУБД, поддерживающим работу с Postgre версии 15.4 и выполнить следующий скрипт:
CREATE TABLE public."__EFMigrationsHistory" ( "MigrationId" varchar(150) NOT NULL, "ProductVersion" varchar(32) NOT NULL, CONSTRAINT "PK___EFMigrationsHistory" PRIMARY KEY ("MigrationId") ); INSERT INTO public."__EFMigrationsHistory" ("MigrationId", "ProductVersion") values ('20240312123332_MESDB_V0', '8.0.8'), ('20240708154420_MESDB_V1.2.0', '8.0.8');
Для обновления версий необходимо скорректировать файл docker-compose, указав:
- для ExeMES Server (Middleware)
image: "git.exeplant.ru:5050/mes-develop/exemesmiddleware:1.3.0"
- для ExeMES Client
image: "git.exeplant.ru:5050/mes-develop/exemesclient:1.3.0"
Указанные образы обновляемых приложений должны быть предварительно добавлены в docker. Образы приложений располагаются в дистрибутиве в папке images. Для добавления образов в docker используйте команду docker load -i [путь к файлу образа]
Далее для обновления необходимо использовать функционал автоматического обновления БД MESDB.
Кроме обязательных действий по обновлению БД MESDB мы предлагаем обновить описания статусов производственных заданий. Это обновление носит рекомендательный характер и никак не влияет на функционал ExeMES.
Для обновления необходимо выполнить следующий скрипт в любом клиенте СУБД подключенном к MESDB
update job_state set state_desc = 'НОВОЕ' where state_cd = 1; update job_state set state_desc = 'В РАБОТУ' where state_cd = 2; update job_state set state_desc = 'ВЫПОЛНЯЕТСЯ' where state_cd = 3; update job_state set state_desc = 'ЗАВЕРШЕНО' where state_cd = 4; update job_state set state_desc = 'ПРИОСТАНОВЛЕНО' where state_cd = 5; update job_state set state_desc = 'ЗАМОРОЖЕНО' where state_cd = 6; update job_state set state_desc = 'ОТМЕНЕНО' where state_cd = 7; update job_state set state_desc = 'ПРОПУЩЕНО' where state_cd = 8; update job_state set state_desc = 'ЗАМЕНЕНО' where state_cd = 9;
Для обновления ПО ExeMES до версии 1.2 необходимо:
- Установить ПО Guardant (при обновлении с версии 1.0);Для корректной работы программных продуктов ExePlant требуется установить следующее ПО на один из компьютеров в сети с контейнерами приложений, который будет выполнять функцию сервера лицензирования:
- Guardant Control Center;
- Guardant SLK.
Дистрибутивы ПО Guardant поставляются совместно с ПО ExePlant и находятся в архиве в папке gcc.
После установки ПО Guardant необходимо активировать лицензию ExeMES с использованием ПО Мастер лицензий Guardant (входит в состав Guardant SLK).Для активации необходимо использовать Программный ключ лицензии.
Программный ключ лицензии представляет собой текстовый шифр и предоставляется Вендором после покупки лицензии.
Мастер лицензий Guardant — утилита, предназначенная для активации и переноса программных лицензий, а также для обновления лицензий.
В зависимости от ОС хоста, на котором запускается Мастер лицензий Guardant активация лицензии может быть выполнена:
- для ОС Windows в графическом режиме. Детальная инструкция представлена по ссылке https://dev.guardant.ru/pages/viewpage.action?pageId=124944419;
- для ОС Linux в консольном режиме. Детальная инструкция представлена по ссылке https://dev.guardant.ru/pages/viewpage.action?pageId=124944421.
Детальная информация по работе с Guardant Control Center представлена на сайте производителя https://dev.guardant.ru/display/GSLK/Guardant+Control+Center.
- Обновить БД MESDB;
- Для обновления версии БД MESDB потребуется любой клиент СУБД, поддерживающий подключение к СУБД Postgres. В клиенте СУБД необходимо выполнить подключение к БД MESDB, параметры подключения можно получить из docker-compose файла, который использовался при запуске существующей версии ExeMES. Далее необходимо выполнить скрипты sql, который располагаются в папке db_updates в дистрибутиве ExeMES 1.2:
Перед обновлением БД MESDB необходимо создать резервную копию БД. При обновлении версии БД MESDB существующая конфигурация производственной модели и накопленные производственные данные будут сохранены. Обновление БД MESDB затрагивает только схему public, в том числе будут обновлены функции и хранимые процедуры.
- Для обновления с версии 1.0 до версии 1.1:
- UPD_from_V1.0.0_to_V1.0.1.sql
- UPD_from_V1.0.1_to_V1.0.2.sql
- UPD_from_V1.0.2_to_V1.0.3.sql
- UPD_from_V1.0.3_to_V1.0.4.sql
- UPD_from_V1.0.4_to_V1.0.5.sql
- UPD_from_V1.0.5_to_V1.1.0.sql
- Для обновления с версии 1.1 до версии 1.2:
- V1.1.0_to_V1.2.0.sql
- Для обновления с версии 1.0 до версии 1.1:
- Скорректировать путь для доступа контейнеров к существующему хранилищу СУБД Postgre;
По умолчанию при установке ExeMES для хранилища СУБД Postgre используется директория /root/dev/db/. Если при установке ExeMES было задано альтернативное размещение хранилища СУБД Postgre, то необходимо изменить путь подключения к нему.
Для этого перед развертыванием новых контейнеров ExeMES в Docker необходимо скорректировать файл docker-compose в части конфигурации контейнера Postgres, а именно добавить:
volumes: - [путь к папке с существующим хранилищем БД Postgre]:/var/lib/postgresql/data/
- Удалить старые и запустить новые контейнеры ExeMES.
- Для запуска контейнеров ExeMES версии 1.1, необходимо предварительно остановить и удалить существующие контейнеры ExeMES:
- Postgres;
- Keycloak;
- Exemiddleware;
- Exemesclient.
Т.к. Keycloak хранит конфигурацию в БД, при удалении контейнера конфигурация не будет потеряна, внесенные настройки сохранены в БД и будут использованы новой версией контейнера
Если вы планируете изменить сертификаты безопасности не забудьте их сгенерировать и указать для использования приложениям как указано в инструкции
Затем необходимо установить новую версию ExeMES согласно инструкции ниже
Для установки и запуска ExeMES необходимо распаковать архив, содержащий ПО ExeMES и предоставленный Вендором используя команду:
gunzip -c exemes.tar.gz | tar -xvf –
В результате у вас появится новый каталог exemes с необходимыми для запуска файлами.
После чего необходимо отредактировать файл docker-compose.yaml, расположенный в корневой папке каталога:
- заменить по тексту файла параметр [host_ip] на ip адрес хоста, на котором инсталлируется ПО;
- заменить по тексту файла параметр [license_server_ip] на ip адрес хоста, на котором установлен сервер лицензирования Guardant Control Center.
Затем необходимо скопировать в каталог /exemes/crt сгенерированные на предыдущих шагах сертификаты. Далее необходимо перейти в каталог, появившийся после распаковки архива, и выполнить команду:
bash install_exemes.sh
при этом произойдет загрузка образов, копирование данных и запуск сервисов.
Если файл не запускается, измените права на этот файл командой:
chmod g+x install_exemes.sh
Для обновления ПО ExeMES до версии 1.1 необходимо:
- Установить ПО Guardant;Для корректной работы программных продуктов ExePlant требуется установить следующее ПО на один из компьютеров в сети с контейнерами приложений, который будет выполнять функцию сервера лицензирования:
- Guardant Control Center;
- Guardant SLK.
Дистрибутивы ПО Guardant поставляются совместно с ПО ExePlant и находятся в архиве в папке gcc.
После установки ПО Guardant необходимо активировать лицензию ExeMES с использованием ПО Мастер лицензий Guardant (входит в состав Guardant SLK).Для активации необходимо использовать Программный ключ лицензии.
Программный ключ лицензии представляет собой текстовый шифр и предоставляется Вендором после покупки лицензии.
Мастер лицензий Guardant — утилита, предназначенная для активации и переноса программных лицензий, а также для обновления лицензий.
В зависимости от ОС хоста, на котором запускается Мастер лицензий Guardant активация лицензии может быть выполнена:
- для ОС Windows в графическом режиме. Детальная инструкция представлена по ссылке https://dev.guardant.ru/pages/viewpage.action?pageId=124944419;
- для ОС Linux в консольном режиме. Детальная инструкция представлена по ссылке https://dev.guardant.ru/pages/viewpage.action?pageId=124944421.
Детальная информация по работе с Guardant Control Center представлена на сайте производителя https://dev.guardant.ru/display/GSLK/Guardant+Control+Center.
- Обновить БД MESDB;
- Для обновления версии БД MESDB потребуется любой клиент СУБД, поддерживающий подключение к СУБД Postgres. В клиенте СУБД необходимо выполнить подключение к БД MESDB, параметры подключения можно получить из docker-compose файла, который использовался при запуске существующей версии ExeMES. Далее необходимо выполнить скрипты sql, который располагаются в папке db_updates в дистрибутиве ExeMES 1.1:
Перед обновлением БД MESDB необходимо создать резервную копию БД. При обновлении версии БД MESDB существующая конфигурация производственной модели и накопленные производственные данные будут сохранены. Обновление БД MESDB затрагивает только схему public, в том числе будут обновлены функции и хранимые процедуры.
- UPD_from_V1.0.0_to_V1.0.1.sql
- UPD_from_V1.0.1_to_V1.0.2.sql
- UPD_from_V1.0.2_to_V1.0.3.sql
- UPD_from_V1.0.3_to_V1.0.4.sql
- UPD_from_V1.0.4_to_V1.0.5.sql
- UPD_from_V1.0.5_to_V1.1.0.sql
- Скорректировать путь для доступа контейнеров к существующему хранилищу СУБД Postgre;
По умолчанию при установке ExeMES для хранилища СУБД Postgre используется директория /root/dev/db/. Если при установке ExeMES было задано альтернативное размещение хранилища СУБД Postgre, то необходимо изменить путь подключения к нему.
Для этого перед развертыванием новых контейнеров ExeMES в Docker необходимо скорректировать файл docker-compose в части конфигурации контейнера Postgres, а именно добавить:
volumes: - [путь к папке с существующим хранилищем БД Postgre]:/var/lib/postgresql/data/
- Удалить старые и запустить новые контейнеры ExeMES.
- Для запуска контейнеров ExeMES версии 1.1, необходимо предварительно остановить и удалить существующие контейнеры ExeMES:
- Postgres;
- Keycloak;
- Exemiddleware;
- Exemesclient.
Т.к. Keycloak хранит конфигурацию в БД, при удалении контейнера конфигурация не будет потеряна, внесенные настройки сохранены в БД и будут использованы новой версией контейнера
Если вы планируете изменить сертификаты безопасности не забудьте их сгенерировать и указать для использования приложениям как указано в инструкции
Затем необходимо установить новую версию ExeMES согласно инструкции ниже
Для установки и запуска ExeMES необходимо распаковать архив, содержащий ПО ExeMES и предоставленный Вендором используя команду:
gunzip -c exemes.tar.gz | tar -xvf –
В результате у вас появится новый каталог exemes с необходимыми для запуска файлами.
После чего необходимо отредактировать файл docker-compose.yaml, расположенный в корневой папке каталога:
- заменить по тексту файла параметр [host_ip] на ip адрес хоста, на котором инсталлируется ПО;
- заменить по тексту файла параметр [license_server_ip] на ip адрес хоста, на котором установлен сервер лицензирования Guardant Control Center.
Затем необходимо скопировать в каталог /exemes/crt сгенерированные на предыдущих шагах сертификаты. Далее необходимо перейти в каталог, появившийся после распаковки архива, и выполнить команду:
bash install_exemes.sh
при этом произойдет загрузка образов, копирование данных и запуск сервисов.
Если файл не запускается, измените права на этот файл командой:
chmod g+x install_exemes.sh
- No labels