Перейти к основному содержимому

Установка сервиса решателя

Важно

Минорная версия расширения для 1С (первые два числа версии) должна совпадать с минорной версией сервиса решателя.

Системные требования

  • Установка доступна на: Windows, Linux, Docker
  • Поддерживаемые архитектуры: только x64

Мы проводим тесты работоспособности на слежующих платформах:

  • Debian 12;
  • Ubuntu 22, 24;
  • Astra Linux 1.7;
  • SelectOS;
  • Centos Stream 9;
  • Rocky Linux 9;
  • Windows 10, 11;
  • Windows Server 2012 R2, 2016, 2019.

При установке на другие платформы необходимо дополнительно учитывать требования по установке .Net 8.

Установка на Windows

1. Обновление Visual C++ Redistributable

Для корректной работы сервиса требуются библиотеки Microsoft Visual C++ Redistributable. Если они еще не установлен на сервере, то их можно загрузить с официального сайта Microsoft.

2. Установка сервиса решателя

Для установки сервиса решателя на Windows скачайте и запустите MSI установщик, доступный для загрузки в разделе скачать. Для запуска установщика потребуются административные права.

Установка на Linux

Debian / Ubuntu / Astra Linux

1.Обновление пакетов, необходимых для установки

sudo apt update && sudo apt install -y wget gnupg

2. Установка ключа безопастности

Скачайте и установите наш открытый ключ:

sudo mkdir -p /usr/share/keyrings && wget -qO- https://repo.itworks.group/public.gpg | sudo gpg --dearmor -o /usr/share/keyrings/itworks.gpg

3. Добавление репозитория

sudo mkdir -p /etc/apt/sources.list.d && echo "deb [signed-by=/usr/share/keyrings/itworks.gpg] https://repo.itworks.group/deb all main" | sudo tee /etc/apt/sources.list.d/itworks.list

4. Обновление списка доступных пакетов

sudo apt update

5. Установка пакета O2

sudo apt install -y o2

6. Открытие порта (опционально)

Если на сервере установлен файрвол, то необходимо отурыть TCP порт. По умолчанию служба слушает порт 4762. Для файервола ufw окрыть доступ можно следующими командами:

sudo ufw allow 4762/tcp
sudo ufw reload

7. Проверка установки

Проверьте установленную версию:

o2 --version

Проверьте, что служба запущена:

sudo systemctl status o2

RHEL / Centos / Alt Linux

1. Обновление пакетов, необходимых для установки

sudo yum install -y wget gnupg2

2. Установка ключа безопастности

Установите наш открытый ключ:

sudo rpm --import https://repo.itworks.group/public.gpg

3. Добавление репозитория

sudo tee /etc/yum.repos.d/o2.repo <<EOF
[itworks]
name=ITworks Repository
baseurl=https://repo.itworks.group/rpm/x86_64
enabled=1
gpgcheck=1
gpgkey=https://repo.itworks.group/public.gpg
EOF

4. Установка пакета O2

sudo yum install -y o2

5. Открытие порта (опционально)

Если на сервере установлен файрвол, то необходимо отурыть TCP порт. По умолчанию служба слушает порт 4762.

sudo firewall-cmd --permanent --add-port=4762/tcp
sudo firewall-cmd --reload

6. Проверка установки

Проверьте установленную версию:

o2 --version

Проверьте, что служба запущена:

sudo systemctl status o2

Установка в Docker

1. Установка Docker

Данная инструкция подразумевает, что на вашем сервере уже установлен и запущен Docker. Если это не так, пожалуйста, воспользуйтесь инструкцией по установке из официальной документации Docker.

2. Запуск сервиса O2 в контейнере

Для запуска контейнера в качестве службы выполните команду docker run для образа itworksgoup/o2:{номер_версии}. Для запуска последней версии укажите версию latest.

docker run \
--detach \
--name O2 \
--publish 4762:4762 \
--restart unless-stopped \
itworksgroup/o2:latest

Облачная функция Яндекс.Облако

Сервис решателя может быть развернут в виде облачной функции на базе Яндекс.Облако. Вы можете создать собственную облачную функцию, для этого вам потребуется действующий аккаунту в облаке Яндекса с привязанным платежным аккаунтом.

Для создания облачной функции выполните следующие действия:

1. Регистрация аккаунта

Если у вас еще нет аккаунта в облаке Яндекса, зарегистрируйте его. После регистрации аккаунта вам необходимо создать платежный аккаунт и првязать его к своей учетной записи.

2. Загрузка дистрибутива O2

Скачайте дистрибутив решателя для облачной функции. Скачать дистрибутив можно в данном разделе.

3. Создание S3 контейнера

Загрузка дистрибутива решателя в облачную функцию происходит из объектного S3 хранилища. Перейдите в раздел "Object Storage" в панели управления Яндекс.Облако и создайте контейнер. При создании контейнера укажите тип хранения: "холодное".

Загрузите скачанный ZIP-архив дистрибутива решателя в созданный контейнер (загружать необходимо именно в виде одного файла фархива).

4. Создание сервисного пользователя

Вызов облачной функции будет осуществляться от лица сервисного пользователя. Для создания сервисного пользователя перейдите в раздел "Identity and Access Management → Сервисные аккаунты". Создайте нового сервисного пользователя со следующими настройками:

  • Имя: o2-user
  • Роли в каталоге: serverless.functions.invoker

5. Создание API-ключа доступа

Для аутентификации сервисного пользователя потребуется создать ключ доступа. Перейдите в карточку созданного сервисного пользователя и нажмите кнопку "Создать ключ". В меню выбора вида ключа выберите "Создать API-ключ". В диалоговом окне выбора укажите следующие настройки:

  • Описание: Вызов облачной функции решателя О2
  • Область действия: yc.serverless.functions.invoke

Нажмите кнопку "Создать". На экране отобразится секретный ключ, который необходимо сохранить в надежном месте. Секретный ключ не хранится в личном кабинете облака, поэтому при утере секртеного ключа вам понадобится удалить старый ключ и создать новый.

5. Создание облачной функции

Перейдите в раздел "Cloud Functions → Функции" и нажмите кнопку "Создать функцию". В диалоге создания функции укажите имя функции o2-solver и нажмите "Создать". В окне редактирования функции укажите следующие настройки:

  • Среда выполнения: .Net /8.0
  • Способ: Object Storage
  • Бакет: укажите S3 контейнер, созданный ранее
  • Объект: укажите имя файла ZIP-архива, который вы загрузили в контейнер, например o2_yandex_cloud_function_1.0.0.zip
  • Точка входа: ITworks.O2.YandexCloudFunction.CloudFunction
  • Таймаут: для начала укажите 60 секунд, позднее это значение можно будет отредактировать
  • Память: 512 Мб, позднее можно будет увеличить, если потребуется
  • Сервисный аккаунт: укажите имя созданного ранее сервисного аккаунта o2-user
  • Запись логов: Включить
  • Назначение: Каталог
  • Минимальный уровень логирования: INFO

Нажмите "Сохранить".

После сохранения настроек запустится сборка. Отсутсвие сообщений об ошибках свидетельствует об успешном создании облачной функции. С этого момента функция создана и готова к использованию.

Для вызова функции из программного кода 1С вам потребуется передать два параметра: идентификатор функции (отображается в настройках функции) и секретный ключ, который вы создали ранее. Пример настроек:

Сервис = О2.Сервисы().ЯндексОблако(
"xxxxxxxxxxxxxxxx", // <-- укажите свой идентификатор функции
"yyyyyyyyyyyyyyyy" // <-- укажите свой секретный ключ
);

ПараметрыПоиска = О2.СоздатьПараметрыПоиска(Сервис);

Решение = Модель.Решить(ПараметрыПоиска);

Установка в закрытом контуре

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

Дистрибутивы Linux могут быть установлены стандартными командами:

sudo apt install /path/to/o2_1.0.0.deb

sudo yum install /path/to/o2-1.0.0.x86_64.rpm

DEB и RPM пакеты подписаны. Для проверки пакетов используйте наш открытый GPG-ключ.

Docker образ также может быть выгружен из удаленного реестра и помещен в локальный реестр закрытого контура.

Выгрузка образа на узле с доступом в интернет:

docker image save itworksgroup/o2:1.0.0 --output /path/to/o2-image.tar 

Загрузка образа на узле в закрытом контуре:

docker image load --input /path/to/o2-image.tar