Тк. данное приложение написано на python
, его установка — копирование файлов с кодом на сервер. Основные трудности могут возникнуть с настройкой окружения — установкой интерпритатора python
и необходимых модулей
Обновление можно осуществить простой подменой файлов с исходным кодом. Возможно нужно будет ещё доустановить недостающие модули. После этого нужно просто перезапустить приложение.
Рекомендуется всегда использовать виртуальное окружение — таким образом можно будет легко избедать проблем с версиями python
или отдельных модулей, если на том же сервере потребуется запустить что-то ещё
Все операции (кроме установки) проводятся в root
-папке приложения (там, где находятся папки source
, config
и т.д.)
python
Для работы приложения нужен интерпритатор версии не ниже 3.10
. Если в системе уже установлен python
более ранней версии его удалять не нужно.
Если нужны несколько версий python
на одной машине, то
WINDOWS: В командах создания виртуального окружения используется утилита py launcher
, которая идёт с установщим python
версии выше 3.3
LINUX: придётся использовать не такую удобную pyenv
, гайд тут
Windows
:python
для всех пользователей и обязательно проверить, что папка назначения доступна всем пользователямДля того чтобы установить модули только для конкретного приложения, создаётся виртуальное окружение. Его нужно производить той версией интерпретатора, которая потом нужна для запуска приложения
python -m venv venv
python3 -m venv venv
py launcher
py -3.10 -m venv venv
pyenv local 3.10.4
python -m venv venv
call venv/Scripts/activate.bat
source venv/bin/activate
Установка производится из файла requirements.txt
pip install -r path_to/requirements.txt
whl
Пытаться загружать пакеты не под текущую архитектуру крайне не рекомендуется (могут быть проблемы с компилируемыми пакетами)
Сохранить все пакеты:
pip download -r requirements.txt -d "./dependencies"
Отдельный пакет, уже установленный в окружении (если на предыдущем пункте скачался, например tar.gz
вместо whl
) :
py -m pip wheel --wheel-dir=./dependencies SomePackage
whl
Локально хранимые файлы пакетов whl
под нужную платформу должны быть в папке dependencies
pip install --no-index --find-links ./dependencies -r requirements.txt
Запуск производится простой командой
python ./source/main.py
Нужно будет ввести мастер-пароль для расшифровки хранимых паролей
Если нужно настроить автозапуск брокера, а необходимость в хранении паролей отсутствует, то нужно использовать опцию командной строки --no_crypt
— мастер-пароль не будет запрошен. ВНИМАНИЕ!
Если в настройках сервера или агента присутствуют поля с суффиксом _enc
, вылетит ошибка, так как расшифровать их невозможно.
python ./source/main.py --no_crypt
Сообщение об успешном запуске выглядит так:
Сетевую доступность можно проверить по адресу
url/status
Там будет вывод о статусе агентов и самого брокера:
{"uuidTaken": 0, "VBA": {"127.0.0.1:5000": {"XLqueueLength": 0, "WDqueueLength": 0, "PPqueueLength": 0, "foldersOnDisk": 0, "XLprocesses": 0, "WDprocesses": 0, "PPprocesses": 0, "isAlive": true, "isActive": true}}, "MYOFFICE": {"127.0.0.1:5001": {"jobsSinceStart": 0, "foldersOnDisk": 0, "runningSubprocesses": 0, "activeJobs": 0, "maxParallelJobs": 10, "isAlive": true, "isActive": true}, "10.8.4.27:3001": {"jobsSinceStart": 0, "foldersOnDisk": 0, "runningSubprocesses": 0, "activeJobs": 0, "maxParallelJobs": 10, "isAlive": true, "isActive": true}}}
Как таковой системы автозапуска нет, достаточно создать bat
-файл с командами активации виртуального окружения и запуска брокера и положить его/его ярлык в автозагрузку. Такой автозапуск будет работать только при входе пользователя в систему (логине). После запуска приложение будет работать до окончания работы сессии пользователя.
Чтобы брокер запускался вместо с загрузкой системы вне зависимости от логина, нужно обернуть его в службу ОС. Для этого можно использовать сторонюю утилиту nssm
(настройка крайне проста, не забудьте включить сохранение вывода консоли в файл). В таком режиме возможно, что первая выгрузка окончится с ошибкой (далее будет работать стабильно, причины не изучались).
Пока не настроена и не тестирована работа через systemd
. Предложений по автозапуску вместе с системой нет. Для того, чтобы приложение продолжило работать после окончания терминальной сессии, можно использовать команду nohup
:
nohup python ./source/main.py --no_crypt &
Не рекомендуется напрямую давать доступ к брокеру через сеть, желательно использовать реверс-прокси, например nginx