You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 56 Next »

Актуальная версия ExeMES - 2.0 (релиз от февраля 2025 г.)

Для обновления на версию ExeMES 2.0 необходимо выполнить последовательно следующие шаги:

Процесс обновления БД MESDB до версии 2.0 возможен, начиная с версии 1.3. Для обновления до версии 1.3 см. пункт Обновление на версию 1.3.

Перед обновлением выполните процедуру резервного копирования БД MESDB.

Проверка актуальности версии БД MESDB и обновление версии производится из интерфейса ExeMES Client. Для проверки и обновления БД MESDB выполните следующие шаги:

  1. Пройдите стандартную процедуру авторизации в ExeMES Client
  2. Проверьте актуальность версии БД MESDB:
    1. Воспользуйтесь всплывающим меню, которое вызывается по нажатию на иконку пользователя в статусной строке ExeMES Client 
    2. Во всплывающем меню выберите пункт «Версия №», после чего откроется страница проверки и обновления версии базы данных MES. Для проверки актуальности версии БД нажмите на кнопку «Проверить актуальность БД». Результаты проверки отобразятся на странице ниже
    3. В случае актуальной версии БД MESDB сообщение будет следующим:
    4. В случае необходимости обновления версии БД MESDB появится сообщение о необходимости обновления и информация об изменениях, которые будут внесены в БД MESDB.
  3. Обновите версию БД MESDB если она неактуальна: 
    1. Для оновления нажмите на кнопку «Обновить версию БД» на странице с результатами проверки актуальности БД, после чего подтвердите действие во всплывающем окне
    2. После завершения обновления появится сообщение об успешном обновлении и лог процесса обновления
    3. Если в процессе обновления появится сообщение «При обновлении БД произошла ошибка!» - обратитесь в службу ТП ExeMES


Для возможности работы с новыми приложениями ExeMES RuntimeClient и ExeSched необходимо импортировать конфигурацию новых клиентов в существующий реалм Keycloak. Для этого выполните следующие шаги:

  1. Зайдите в приложение Keycloak под администратором реалма и выберите в выпадающем списке реалм «exemes»
  2. В левом боковом меню выберите пункт «Clients»
  3. В центральной части экрана нажмите на кнопку «Import Client»
  4. Ниже в центральной части экрана нажмите «Browse...»
  5. Выберите файл exemesruntime-client.json из папки upd, которая находится в составе дистрибутива exemes 2.0 и нажмите кнопку «Открыть»
  6. После завершения загрузки файла, переместитесь в конец страницы и нажмите кнопку «Save»
  7. Аналогичные действия необходимо произвести со вторым файлом в папке upd: exesched.json
  8. После завершения импорта конфигурации убедитесь что новая конфигурация появилась в списке клиентов

Для корректной работы новых приложений ExeMES RuntimeClient и ExeSched необходимо создать и настроить роли в импортированных клиентах:

  1. Выберите в списке клиентов «exemesruntime-client».
    1. В центральной части экрана перейдите на вкладку «Roles» и нажмите на кнопку «Create role»
    2. Ниже заполните поля Role name и Description, в завершении нажмите кнопку «Save»
    3. Таким образом, создайте 4 роли с описаниями:
      • Role name = Inventory, Description = Доступ к экрану управления складскими остатками;
      • Role name = Operator, Description = Доступ к панели оператора;
      • Role name = Quality, Description = Доступ к экрану управления качеством;
      • Role name = Utilization, Description = Доступ к экрану управления событиями оборудования.
  2. Вернитесь к списку клиентов и выберите «exesched»
    1. Для exesched создайте 1 роль:
      • Role name = Scheduler, Description = Планировщик.
  3. Назначьте новые роли соответствующим группам пользователей, в зависимости от Вашей конфигурации. Подробно об Управлении доступом к ExeMES.

Для корректной работы механизма разграничения прав доступа по объектам выполните следующие шаги:

  1. Добавьте новые роли соответствующим группам пользователей, в зависимости от Вашей конфигурации.
    1. Выберите в левом меню вкладку «Clients» далее выберите пункт «mesmiddleware»
    2. В центральной части экрана выберите вкладку «Roles» и нажмите кнопку «Create Role»
    3. В новом окне заполните поля Role name и Description. Таким образом для клиента mesmiddleware должно быть создано 2 роли:
      • Role name = VAccess, Description = View Access Management;
      • Role name = EAccess, Description = Edit Access Management.
    4.  Назначьте новые роли группам пользователей, в зависимости от конфигурации Вашей системы. Подробно об Управлении доступом к ExeMES.
  2. Добавьте существующие роли реалма группам пользователей, отвечающим за настройку доступа к объектам.
    1. Добавьте роль view-users (существующая);
    2. Добавьте роль manage-authorization (существующая).
  3. Добавьте роль realm-management/view-clients для сервисного аккаунта клиента mesmiddleware.
    1. Перейдите в левом меню на вкладку «Clients»;
    2. Выберите пункт «mesmiddleware»;
    3. В центральной части экрана перейдите на вкладку «Service Account Roles» и нажмите на кнопку «Assign role»;
    4. В появившемся окне выберите фильтр «Filter by clients»;
    5. Введите в поле фильтра «view-clients»;
    6. Выберите роль «view-clients» и нажмите кнопку «Assign».

  1. Добавьте образы новых приложений в 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
  2. Укажите новый образ для ExeMES Server (Middleware): 
    image: "git.exeplant.ru:5050/mes-develop/exemesmiddleware:2.0"
  3. Сконфигурируйте новую переменную окружения для ExeMES Server (Middleware):
    EntityAccessProtection: "Enabled"

    Переменная EntityAccessProtection активирует функционал разделения прав доступа по объектам.

    Если Вы не планируете использовать этот функционал, можете не указывать эту переменную, либо сконфигурируйте её, указав:

    EntityAccessProtection: "Disabled"

    Подробнее о настройке переменных окружения.

  4. Укажите новый образ для ExeMES Client:
    image: "git.exeplant.ru:5050/mes-develop/exemesclient:2.0"
  1. Скопируйте папки data/exeruntimeclient и data/exesched в папку с установленным ПО ExeMES (по умолчанию root/dev/);
  2. Добавьте в файл 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 RuntimeClient
      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]"

    Обратите внимание, что новые приложения используют уже существующие сертификаты, проверьте правильность указания пути к файлам сертификатов (используйте аналогию с 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 указаны в конфигурации приложений по умолчанию. Для альтернативной БД сконфигурируйте соответствующие переменные окружения.

  3. После завершения редактирования файла docker compose выполните перезапуск измененных и запуск добавленных контейнеров, выполнив команду:
    docker compose up -d

Процесс обновления БД MESDB до версии 1.3 возможен только с версии 1.2. Для обновления до версии 1.2 см. пункт Обновление на версию 1.2

Обновление БД производится из интерфейса ExeMES Client. Для корректной работы функционала обновления необходимо предварительно выполнить следующие действия:

Необходимо создать в существующем реалме Keycloak новые роли, для этого:

  1. Зайдите в приложение Keycloak под администратором реалма и выберите в выпадающем списке реалм «exemes»
  2. Выберите в левом боковом меню пункт «Clients»
  3. В центральной части экрана выберите клиент «mesmiddleware»
  4. Перейдите на вкладку Roles и нажмите кнопку «Create Role»
  5. Заполните поля в открывшемся окне:
    •  Role name = EAdm, Description = Edit (manage) Admin Tools.
  6. Нажмите кнопку «Save»
  7. Создайте еще одну роль по аналогии:
    • Role name = VAdm, Description = View Admin Tools.

Для корректной работы функционала обновления БД новые роли необходимо добавить группам пользователей в зависимости от Вашей конфигурации.

  1. Выберите нужную Вам группу и перейдите на вкладку «Role mapping» в центральной части экрана и нажмите на кнопку «Assign role»
  2. Во всплывающем окне выберите фильтр «Filter by clients», правее фильтра в строке поиске укажите имя роли VAdm и нажмите стрелку для поиска. Поставьте галку напротив группы VAdm и нажмите кнопку «Assign»
  3. Аналогично, для разрешения обновления версии БД 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 необходимо:

  1. Установить ПО Guardant (при обновлении с версии 1.0);

    Для корректной работы программных продуктов ExePlant требуется установить следующее ПО на один из компьютеров в сети с контейнерами приложений, который будет выполнять функцию сервера лицензирования:
    • Guardant Control Center;
    • Guardant SLK.

    Дистрибутивы ПО Guardant поставляются совместно с ПО ExePlant и находятся в архиве в папке gcc.

    После установки ПО Guardant необходимо активировать лицензию ExeMES с использованием ПО Мастер лицензий Guardant (входит в состав Guardant SLK).Для активации необходимо использовать Программный ключ лицензии.

    Программный ключ лицензии представляет собой текстовый шифр и предоставляется Вендором после покупки лицензии.

     Мастер лицензий Guardant — утилита, предназначенная для активации и переноса программных лицензий, а также для обновления лицензий.

    В зависимости от ОС хоста, на котором запускается Мастер лицензий Guardant активация лицензии может быть выполнена:

    Детальная информация по работе с Guardant Control Center представлена на сайте производителя https://dev.guardant.ru/display/GSLK/Guardant+Control+Center.


  2. Обновить БД MESDB;
    • Перед обновлением БД MESDB необходимо создать резервную копию БД. При обновлении версии БД MESDB существующая конфигурация производственной модели и накопленные производственные данные будут сохранены. Обновление БД MESDB затрагивает только схему public, в том числе будут обновлены функции и хранимые процедуры.

      Для обновления версии БД MESDB потребуется любой клиент СУБД, поддерживающий подключение к СУБД Postgres. В клиенте СУБД необходимо выполнить подключение к БД MESDB, параметры подключения можно получить из docker-compose файла, который использовался при запуске существующей версии ExeMES. Далее необходимо выполнить скрипты sql, который располагаются в папке db_updates в дистрибутиве ExeMES 1.2:
      • Для обновления с версии 1.0 до версии 1.1:
            1. UPD_from_V1.0.0_to_V1.0.1.sql
            2. UPD_from_V1.0.1_to_V1.0.2.sql
            3. UPD_from_V1.0.2_to_V1.0.3.sql
            4. UPD_from_V1.0.3_to_V1.0.4.sql
            5. UPD_from_V1.0.4_to_V1.0.5.sql
            6. UPD_from_V1.0.5_to_V1.1.0.sql
      • Для обновления с версии 1.1 до версии 1.2:
            1. V1.1.0_to_V1.2.0.sql
  3. Скорректировать путь для доступа контейнеров к существующему хранилищу СУБД Postgre;
    • По умолчанию при установке ExeMES для хранилища СУБД Postgre используется директория /root/dev/db/. Если при установке ExeMES было задано альтернативное размещение хранилища СУБД Postgre, то необходимо изменить путь подключения к нему. 

      Для этого перед развертыванием новых контейнеров ExeMES в Docker необходимо скорректировать файл docker-compose в части конфигурации контейнера Postgres, а именно добавить:

      volumes:
            - [путь к папке с существующим хранилищем БД Postgre]:/var/lib/postgresql/data/
  4. Удалить старые и запустить новые контейнеры ExeMES.
    • Для запуска контейнеров ExeMES версии 1.1, необходимо предварительно остановить и удалить существующие контейнеры ExeMES:
      • Postgres;
      • Keycloak;
      • Exemiddleware;
      • Exemesclient.

        Т.к. Keycloak хранит конфигурацию в БД, при удалении контейнера конфигурация не будет потеряна, внесенные настройки сохранены в БД и будут использованы новой версией контейнера

Если вы планируете изменить сертификаты безопасности не забудьте их сгенерировать и указать для использования приложениям как указано в инструкции

Затем необходимо установить новую версию ExeMES согласно инструкции ниже

Инструкция по установке 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 необходимо:

  1. Установить ПО Guardant;

    Для корректной работы программных продуктов ExePlant требуется установить следующее ПО на один из компьютеров в сети с контейнерами приложений, который будет выполнять функцию сервера лицензирования:
    • Guardant Control Center;
    • Guardant SLK.

    Дистрибутивы ПО Guardant поставляются совместно с ПО ExePlant и находятся в архиве в папке gcc.

    После установки ПО Guardant необходимо активировать лицензию ExeMES с использованием ПО Мастер лицензий Guardant (входит в состав Guardant SLK).Для активации необходимо использовать Программный ключ лицензии.

    Программный ключ лицензии представляет собой текстовый шифр и предоставляется Вендором после покупки лицензии.

     Мастер лицензий Guardant — утилита, предназначенная для активации и переноса программных лицензий, а также для обновления лицензий.

    В зависимости от ОС хоста, на котором запускается Мастер лицензий Guardant активация лицензии может быть выполнена:

    Детальная информация по работе с Guardant Control Center представлена на сайте производителя https://dev.guardant.ru/display/GSLK/Guardant+Control+Center.


  2. Обновить БД MESDB;
    • Перед обновлением БД MESDB необходимо создать резервную копию БД. При обновлении версии БД MESDB существующая конфигурация производственной модели и накопленные производственные данные будут сохранены. Обновление БД MESDB затрагивает только схему public, в том числе будут обновлены функции и хранимые процедуры.

      Для обновления версии БД MESDB потребуется любой клиент СУБД, поддерживающий подключение к СУБД Postgres. В клиенте СУБД необходимо выполнить подключение к БД MESDB, параметры подключения можно получить из docker-compose файла, который использовался при запуске существующей версии ExeMES. Далее необходимо выполнить скрипты sql, который располагаются в папке db_updates в дистрибутиве ExeMES 1.1:
          1. UPD_from_V1.0.0_to_V1.0.1.sql
          2. UPD_from_V1.0.1_to_V1.0.2.sql
          3. UPD_from_V1.0.2_to_V1.0.3.sql
          4. UPD_from_V1.0.3_to_V1.0.4.sql
          5. UPD_from_V1.0.4_to_V1.0.5.sql
          6. UPD_from_V1.0.5_to_V1.1.0.sql
  3. Скорректировать путь для доступа контейнеров к существующему хранилищу СУБД Postgre;
    • По умолчанию при установке ExeMES для хранилища СУБД Postgre используется директория /root/dev/db/. Если при установке ExeMES было задано альтернативное размещение хранилища СУБД Postgre, то необходимо изменить путь подключения к нему. 

      Для этого перед развертыванием новых контейнеров ExeMES в Docker необходимо скорректировать файл docker-compose в части конфигурации контейнера Postgres, а именно добавить:

      volumes:
            - [путь к папке с существующим хранилищем БД Postgre]:/var/lib/postgresql/data/
  4. Удалить старые и запустить новые контейнеры ExeMES.
    • Для запуска контейнеров ExeMES версии 1.1, необходимо предварительно остановить и удалить существующие контейнеры ExeMES:
      • Postgres;
      • Keycloak;
      • Exemiddleware;
      • Exemesclient.

        Т.к. Keycloak хранит конфигурацию в БД, при удалении контейнера конфигурация не будет потеряна, внесенные настройки сохранены в БД и будут использованы новой версией контейнера

Если вы планируете изменить сертификаты безопасности не забудьте их сгенерировать и указать для использования приложениям как указано в инструкции

Затем необходимо установить новую версию ExeMES согласно инструкции ниже

Инструкция по установке 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