Перейти к содержанию

Параметры DocPrinter Broker

Общие замечания

Настройки хранятся в виде двух файлов формата yaml: server.yaml и agents.yaml в папке config приложения. Первый файл отвечает за общие настройки сервиса (рабочий порт, авторизацию и т.д.), а второй — за подключение к брокеру агентов.

Шифрование чувствительных настроек

  1. Для хранения паролей используется шифрование: в любом из этих файлов ключ, название которого оканчивается на _enc будет расшифровано после введения мастер-пароля и сохранено в ключ без этого суффикса. Например, после расшифровки password_enc станет с ключом password. Теоретически, можно просто записать пароль в открытом виде сразу в password, но это крайне не рекомендуется. На самом деле этим способом можно зашифровать содержимое любого текстового поля.

  2. Мастер-пароль нигде не хранится, восстановить содержимое зашифрованных полей без него невозможно (без полного перебора). Чтобы получить зашифрованную строку нужно:

    1. запустить модуль security.py и ввести мастер-пароль
      python ./source/security.py
      
    2. использовать метод encrypt Шифрование пароля
  3. Дополнительно

    1. вывести введённый мастер-пароль можно командой master_key Проверка правильности введённого пароля
    2. расшифровать строку командой decrypt (аналогично encrypt) Дешифровка строки
  4. При запуске брокера с опцией командной строки --no_crypt не будет запрошен мастер-пароль.

Warning

ВНИМАНИЕ! Если в настройках сервера или агента присутствуют поля с суффиксом _enc, вылетит ошибка, так как расшифровать их невозможно. Данная опция будет полезна, если нужно настроить автозапуск брокера, а необходимость в хранении паролей отсутствует

Настройки сервера server.yaml

блок main

сетевые настройки сервера и его самоназвание

# main
server_name: 'DOCTEST' # это самоназвание используется в письмах администратору, чтобы было понятно, какой сервер пишет
host: 0.0.0.0 # адрес, который слушает сервер, 0.0.0.0 — все доступные, альтернативно можно поставить 127.0.0.1, другие нежелательно — при тестах не заработало
port: 3001 # порт, который будет прослушиваться
max_request_size: 104857600 # максимальный размер входящего запроса в байтах

блок ssl

настройки контекста защищенных соединений, если защищенное соединение не нужно, удалите эти настройки или поставьте в начале каждой строки #

# ssl

cert: config/certs/server.crt # путь к сертификату в формате .crt относительно папки приложения
key: config/certs/server.key # путь к секретному ключу в формате .key относительно папки приложения

блок настроек запросов отправляемых к агентам

Если агент дважды подряд выйдет за указанные таймауты — он будет исключен из пула активных, а администратору будет отправлено письмо о том, что агент недоступен (если рассылка настроена)

# timeouts and pools (# of concurrently running status requests to agents)
availability_timeout: 300 # таймаут в секундах на запросы поиска свободного агента
req_timeout: 600 # таймаут в секундах на запросы по задачам: выполнение макроса, скачивание файла, удаление папки
status_timeout: 5 # таймаут в секундах на запросы статуса агента (используется при запросе статусов всех агентов по broker_url/status и при отправке задач, чтобы понять, какие агенты свободны)
concurent_pool: 10 # максимальное количество запросов статуса агентов, отправляемых параллельно, 10 — максимум к 10 агентам одновременно будут посланы запросы

префикс для id задач

Будет использован в передаваемых идентификаторах задачи (затем на сервере с агентом так проще искать папку с файлами задачи, если агент подключен к нескольким брокерам или работает ещё и напрямую)

# prefix for uuids (to ensure uniquness for an agent as agent can be
# used by multiple brokers)
uuid_prefix: DOCTEST

настройки логирования работы сервера

# logging
log_dir: logs # путь к директории относительно папки приложения, где будут хранится логи
log_file: server # название файла с логами
logger_level: 10 # 10 — DEBUG — уровень логирования, отвечает за подробность выводимой информации

настройки аутентификации для доступа к брокеру

Используется basic auth. Кроме ограничения на отправку задач, есть ещё и ограничение на скачивание файлов и удаление папок: только тот же пользователь, что отправлял задачу, может скачать файлы. Клиентам доступна только выгрузка, админам ещё и запрос статуса брокера. Настройки задаются в виде пары имя_пользователя: md5_хэш_пароля.

Info

Внимание! Некоторые онлайн-сервисы неверно считают хэш при наличии спец. символов в пароле!

# authentication: login: md5_hashed_pass paires
# check on different services (but better with python's hashlib)
# as the presence of special chars in the pass sometimes breaks some services
basic_auth: True # включение и отключение аутентификации
# for clients
client_auth: # клиенты
    client1: 'hash_here'
# for admins
admin_auth:
    service: 'hash_here'

настройки отправки почты

Почти все поля стандартны для работы с SMTP

# mailing for admin notifications
mailing:
    TLS: False
    SSL: True
    host: smtp.mail.ru
    port: 465
    user: admin@optimacros.com
    password_enc: 'c6vyJKdmhT6g2wwnocPVigABhqCAAAAAAGH8Ow7kVNjBtv5MVIdgunejtsDOmrcsvQ1PXcrr6k94d74_ny4hx8TNVaqBObR2_fk84j_ZIV5M0US9caH7cEbVCGde10D543y2hhtz6wuPzoI1CQ=='
    sender: admin@optimacros.com
    mailing_list: # список email адресов, на которые пойдут письма
        - admin@optimacros.com

Настройки агентов agents.yaml

Схема такая:

тип_агента_1:
    - настройка 1 агента 1: значение
      настройка 2 агента 1: значение
    - настройка 1 агента 2: значение
      настройка 2 агента 2: значение
тип_агента_2:
    - настройка 1 агента 1: значение
      настройка 2 агента 1: значение
    - настройка 1 агента 2: значение
      настройка 2 агента 2: значение

Типы агентов: - VBA - для агента Microsoft Office - MYOFFICE - для агента МойОфис

Возможные параметры (не нужные можно опустить):

url: 10.8.4.22:3001 # адрес агента без http и https, по умолчанию 127.0.0.1:5000, но лучше всегда указывать прямо
login: broker # логин для аутентификации, если она нужна
password_enc: '0fz6hASLRfYM1gVkvRiq-AABhqCAAAAAAGHcDYclmSLFmpR6VBozwmNucAmr5iJxCfE6JQPLhJS-vMp7yraDedRS8rpepK7eb8cRmtxs46dVGfJWHa_GLSWxeh0_0Lv6EA3kn4GnXkWXlj_tMA==' # пароль в шифрованном виде для аутентификации, если она нужна
cert: agents/10.8.4.22.der # путь к сертификату агента в формате .der относительно папки config/certs/ для работы по https, если нужно защищённое соединение