Параметры DocPrinter Broker¶
Общие замечания¶
Настройки хранятся в виде двух файлов формата yaml: server.yaml и
agents.yaml в папке config приложения. Первый файл отвечает за общие
настройки сервиса (рабочий порт, авторизацию и т.д.), а второй — за
подключение к брокеру агентов.
Шифрование чувствительных настроек¶
-
Для хранения паролей используется шифрование: в любом из этих файлов ключ, название которого оканчивается на
_encбудет расшифровано после введения мастер-пароля и сохранено в ключ без этого суффикса. Например, после расшифровкиpassword_encстанет с ключомpassword. Теоретически, можно просто записать пароль в открытом виде сразу вpassword, но это крайне не рекомендуется. На самом деле этим способом можно зашифровать содержимое любого текстового поля. -
Мастер-пароль нигде не хранится, восстановить содержимое зашифрованных полей без него невозможно (без полного перебора). Чтобы получить зашифрованную строку нужно:
- запустить модуль
security.pyи ввести мастер-пароль - использовать метод
encrypt
- запустить модуль
-
Дополнительно
- вывести введённый мастер-пароль можно командой
master_key
- расшифровать строку командой
decrypt(аналогичноencrypt)
- вывести введённый мастер-пароль можно командой
-
При запуске брокера с опцией командной строки
--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, если нужно защищённое соединение