yaml
: server.yaml
и agents.yaml
в папке config
приложения. Первый файл отвечает за общие настройки сервиса (рабочий порт, авторизацию и т.д.), а второй — за подключение к брокеру агентов.Для хранения паролей используется шифорование: в любом из этих файлов ключ, название которого оканчивается на _enc
будет расшифровано после введения мастер-пароля и сохранено в ключ без этого суффикса. Например, после расшифровки password_enc
станет сключом password
. Теоретически, можно просто записать пароль в открытом виде сразу в password
, но это крайне не рекомендуется. На самом деле этим способом можно зашифровать содержимое любого текстового поля.
Мастер-пароль нигде не хранится, восстановить содержимое зашифрованных полей без него невозможно (без полного перебора). Чтобы получить зашифрованную строку нужно:
security.py
и ввести мастер-парольpython ./source/security.py
encrypt
master_key
decrypt
(аналогично encrypt
)--no_crypt
не будет запрошен мастер-пароль. ВНИМАНИЕ!
Если в настройках сервера или агента присутствуют поля с суффиксом _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 concurently 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_хэш_пароля
. Внимание! Некоторые онлайн-сервисы неверно считают хэш при наличии спец. символов в пароле!# 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: d.makarov@mcb-consulting.com
password_enc: 'c6vyJKdmhT6g2wwnocPVigABhqCAAAAAAGH8Ow7kVNjBtv5MVIdgunejtsDOmrcsvQ1PXcrr6k94d74_ny4hx8TNVaqBObR2_fk84j_ZIV5M0US9caH7cEbVCGde10D543y2hhtz6wuPzoI1CQ=='
sender: d.makarov@mcb-consulting.com
mailing_list: # список имейлов, на которые пойдут писма
- d.makarov@mcb-consulting.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: '0fzfhASLRfYM1gVkvRiq-AABhqCAAAAAAGHcDYclmSLFmpR6VBozwmNucAmr5iJxCfE6JQPLhJS-vMpcyraDedRS8rpepK7eb8cRmtxs46dVGfJWHa_GLSWxeh0_0Lv6EA3kn4GnXkWXlj_tMA==' # пароль в шифрованном виде для аутентификации, если она нужна
cert: agents/10.8.4.22.der # путь к сертификату агента в формате .der относительно папки config/certs/ для работы по https, если нужно защещённое соединение