- Created by Victoria Belyaeva, last modified by Eduard Zhitenev on Feb 10, 2025
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 19 Next »
Актуальная версия ExeMES - 2.0 (релиз от февраля 2025 г.)
Для обновления на версию ExeMES необходимо выполнить последовательно следующие шаги.
Процесс обновления БД MESDB до версии 2.0 возможен, начиная с версии 1.3. Для обновления до версии 1.3 см. пункт Обновление на версию 1.3
Для обновления необходимо использовать
Выполните бэкап БД MESDB перед обновлением
Для обновления БД MESDB из приложения ExeMES Client необходимо пройти стандартную процедуру авторизации в приложении Keycloak.
Далее в правом верхнем углу экрана нужно нажать на имя пользователя. Затем нужно нажать на информацию о версии ExeMES Client.
В появившемся окне находится кнопка проверки актуальности БД MESDB.
Кнопка перехода на страницу обновления
После нажатия на кнопку открывается страница обновлления БД.
Кнопка проверки актуальности БД
После нажатия на кнопку проверки актуальности БД MESDB в окне появится информация о необходимости обновления БД MESDB.
В случае актуальной версии MESDB сообщение будет следующим
Версия БД актуальна
В случае необходимости обновления в окне появится кнопка Обновить версию БД и детальная информация о вносимых изменениях.
Необходимо обновление
Для обновления необходимо нажать на кнопку обновить версию БД и подтвердить выбор во всплывающем окне.
Подтверждение обновления версии БД
После завершения обновления появится соответствущее сообщение и лог обновления.
Сообщение об успешном обновлении и лог процесса обновления
Обновление версии БД MESDB успешно завершено.
- Зайдите в приложение Keycloak под администратором реалма и выберите в выпадающем списке реалм exemes
Выбор реалма
- В левом боковом меню выберите пункт Clients
Пункт Clients
- В центральной части экрана нажмите на кнопку Import Client
Импорт клиента
- Ниже в центральной части экрана нажмите Browse...
Выбор файла для импорта
- Выберите файл exemesruntime-client.json из папки upd, которая находится в составе дистрибутива exemes 2.0.
- После завершения загрузки файла, переместитесь в конец страницы и нажмите кнопку Save.
Сохранение конфигурации
- Аналогичные действия необходимо произвести со вторым файлом в папке upd: exesched.json.
- После завершения загрузки файла, переместитесь в конец страницы и нажмите кнопку Save.
- После завершения импорта конфигурации убедитесь что новая конфигурация появилась в списке клиентов
Проверка списка импортированных клиентов
- Создайте новые роли для импортированных клиентов, для этого выберите в списке 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;
- В появившемся окне выберите фильтр Filter by clients;
- Введите в поле фильтра view-clients;
- Выберите роль view-clients и нажмите кнопку Assign.
Добавление роли для сервисного аккаунта клиента mesmiddleware
- Укажите новый образ для Middleware:
- image: "git.exeplant.ru:5050/mes-develop/exemesmiddleware:2.0"
- Сконфигурируйте новую переменную окружения для Middleware:
- EntityAccessProtection: "Enabled"
- Укажите новый образ для MESClient:
- image: "git.exeplant.ru:5050/mes-develop/exemesclient:2.0"
Переменная EntityAccessProtection активирует функционал разделения прав доступа по объектам.
Если Вы не планируете использовать этот функционал, можете не указывать эту переменную, либо сконфигурируйте её, указав:
EntityAccessProtection: "Disabled"
Образы обновляемых приложений должны быть предварительно добавлены в docker. Образы приложений располагаются в дистрибутиве в папке images. Для добавления образов в docker используйте команду docker load -i [путь к файлу образа]
- Скопируйте папки data/exeruntimeclient и data/exesched в папку с установленным ПО ExeMES (по умолчанию root/dev/);
- Добавьте в файл docker-compose (по умолчанию root/dev) конфигурацию приложения ExeRuntimeClient и ExeSched;
exeruntimeclient: 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]"
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]"
Параметры подключения к контейнеру БД Postgre указаны в конфигурации приложений по умолчанию. Для альтернативной БД сконфигурируйте соответствующие переменные окружения.
Подробнее о настройке переменных окружения.
Обратите внимание, что новые приложения используют уже существующие сертификаты, проверьте правильность указания пути к файлам сертификатов (используйте аналогию с 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
3. После завершения редактирования файла docker compose выполните перезапуск измененных и запуск добавленных контейнеров, выполнив команду: docker compose up -d .
Процесс обновления БД MESDB до версии 1.3 возможен только с версии 1.2. Для обновления до версии 1.2 см. пункт Обновление на версию 1.2
Для обновления ПО ExeMES 1.3 используется встроенный в Middleware функционал. Для корректной работы функционала обновления необходимо предварительно выполнить следующие действия:
Необходимо добавить в существующий реалм Keycloak новые роли и назначить эти роли требуемой группе пользователей, для этого:
Нужно зайти в приложение Keycloak под администратором реалма и выбрать в выпадающем списке реалм exemes
Выбор реалма
Далее в левом боковом меню выбрать пункт Clients
Пункт Clients
В центральной части экрана выбрать клиент Middleware
Выбор клиента mesmiddleware
Далее необходимо перейти на вкладку Roles и нажать кнопку Create Role
Создание роли
В открывшемся окне в поле Role Name необходимо ввести название новой роли EAdm в поле Description нужно ввести Edit (manage) Admin Tools
Сохранение роли
После заполнения полей необходимо нажать кнопку Save.
Аналогично роли EAdm необходимо добавить еще одну роль с именем VAdm и описанием View Admin Tools.
После заполнения полей необходимо нажать кнопку Save.
Для назначения новых ролей определенной группе пользователей необходимо переключиться в левом меню на пункт Groups, затем необходимо выбрать группу пользователей, которой будут доступна роль разрешающая просмотр информации о версии БД MESDB (VAdm) и роль разрешающая производить обновление версии БД MESDB (EAdm). В примере ниже роль VAdm будет добавлена группе EXEMES_Admins. После выбора группы пользователей необходимо перейти на вкладку Role mapping в центральной части экрана и нажать на кнопку Assign role
Привязка роли
Во всплывающем окне необходимо выбрать фильтр Filter by clients, правее фильтра в строке поиске указать имя роли VAdm и нажать стрелку для поиска. После необходимо поставить галку напротив группы VAdm и нажать кнопку Assign
Привязка роли
Теперь все пользователи группы EXEMES_Admins будут иметь возможность проверять актуальность версии БД MESDB.
Аналогично для разрешения обновления версии БД MESDB группе пользователей необходимо назначить роль EAdm.
Для того чтобы приложение Middleware корректно обновила БД 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, указав
для Middleware
image: "git.exeplant.ru:5050/mes-develop/exemesmiddleware:1.3.0"
для MESClient
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;
- скорректировать путь для доступа контейнеров к существующему хранилищу СУБД Postgre;
- удалить старые и запустить новые контейнеры ExeMES.
Перед обновлением БД MESDB необходимо создать резервную копию БД. При обновлении версии БД MESDB существующая конфигурация производственной модели и накопленные производственные данные будут сохранены. Обновление БД MESDB затрагивает только схему public, в том числе будут обновлены функции и хранимые процедуры.
Для обновления версии БД MESDB потребуется любой клиент СУБД, поддерживающий подключение к СУБД Postgres. В клиенте СУБД необходимо выполнить подключение к БД MESDB, параметры подключения можно получить из docker-compose файла, который использовался при запуске существующей версии ExeMES. Далее необходимо выполнить скрипты sql, который располагаются в папке db_updates в дистрибутиве ExeMES 1.2:
- Для обновления с версии 1.0:
- 0.0_to_V1.0.1.sql
- 0.1_to_V1.0.2.sql
- 0.2_to_V1.0.3.sql
- 0.3_to_V1.0.4.sql
- 0.4_to_V1.0.5.sql
- 0.5_to_V1.1.0.sql
- Для обновления с версии 1.1
- 1.0_to_V1.2.0.sql
По умолчанию при установке ExeMES для хранилища СУБД Postgre используется директория /root/dev/db/. Если при установке ExeMES было задано альтернативное размещение хранилища СУБД Postgre, то необходимо изменить путь подключения к нему.
Для этого перед развертыванием новых контейнеров ExeMES в Docker необходимо скорректировать файл docker-compose в части конфигурации контейнера Postgres, а именно добавить:
volumes:
- [путь к папке с существующему хранилищу СУБД Postgre]:/var/lib/postgresql/data/
Для запуска контейнеров ExeMES версии 1.2, необходимо предварительно остановить и удалить существующие контейнеры 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;
- скорректировать путь для доступа контейнеров к существующему хранилищу СУБД Postgre;
- удалить старые и запустить новые контейнеры ExeMES.
Перед обновлением БД MESDB необходимо создать резервную копию БД. При обновлении версии БД MESDB существующая конфигурация производственной модели и накопленные производственные данные будут сохранены. Обновление БД MESDB затрагивает только схему public, в том числе будут обновлены функции и хранимые процедуры.
Для обновления версии БД MESDB потребуется любой клиент СУБД, поддерживающий подключение к СУБД Postgres. В клиенте СУБД необходимо выполнить подключение к БД MESDB, параметры подключения можно получить из docker-compose файла, который использовался при запуске существующей версии ExeMES. Далее необходимо выполнить скрипты sql, который располагаются в папке db_updates в дистрибутиве ExeMES 1.1:
- 0.0_to_V1.0.1.sql
- 0.1_to_V1.0.2.sql
- 0.2_to_V1.0.3.sql
- 0.3_to_V1.0.4.sql
- 0.4_to_V1.0.5.sql
- 0.5_to_V1.1.0.sql
По умолчанию при установке ExeMES для хранилища СУБД Postgre используется директория /root/dev/db/. Если при установке ExeMES было задано альтернативное размещение хранилища СУБД Postgre, то необходимо изменить путь подключения к нему.
Для этого перед развертыванием новых контейнеров ExeMES в Docker необходимо скорректировать файл docker-compose в части конфигурации контейнера Postgres, а именно добавить:
volumes:
- [путь к папке с существующему хранилищу СУБД Postgre]:/var/lib/postgresql/data/
Для запуска контейнеров 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