/ibcntr

Веб страница управления еженощной перезагрузкой тестовых информационных баз 1С

Primary LanguagePythonMIT LicenseMIT

Веб-страница для управления перезагрузкой тестовых ИБ

Предназначена для включения/отключения скриптов, загружающих бэкап рабочих ИБ в тестовые ИБ.

Каждую ночь у нас запускаются задания Jenkins для загрузки свежих данных в тестовые информационные базы из SQL-бэкапа рабочих ИБ. Перед выполнением загрузки, каждое задание выполняет запрос curl http://SERVER:PORT/q/INFOBASE_NAME по текущей тестовой ИБ и, если запрос возвращает значение "on", то загрузка выполняется.

Проект работает в виртуальном окружении venv. Чтобы настроить окружение и установить в нее все необходимые библиотеки, нужно выполнить команды:

cd <repo>
$ python3 -m venv venv
$ source venv/bin/activate
(ibcntr) $ pip install -r requirements.txt

Данные аутентификации хранятся в базе SQLite ibcntr/db.sqlite Для создания БД нужно выполнить команды:

$ python
>>> from ibcntr import db, create_app, models  
>>> db.create_all(app=create_app())

на продуктиве, живучестью сервиса управляет сервис linux supervisor

$ sudo apt-get -y install supervisor nginx

Конфигурационный файл /etc/supervisor/conf.d/ibcntr.conf:

[program:runner]
command=/opt/cntib/venv/bin/gunicorn -b localhost:8000 -w 4 runner:ibcntr
directory=/home/vsuh/Dropbox/projects/flask-ibcntr
user=vsuh
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true

Настройки рабочего экземпляра проекта в файле conf/.env

SECRET_KEY = 'a92d74111111111111111111111dbc29'
LOG_TO_STDOUT = False
REDIS_URL = 'redis://redis-hostname-or-ip/1?decode_responses=True&health_check_interval=2'
PROD_APP_NAME = 'ibcntr'

Данные хранятся в БД redis

В API добавлена команда /initialize_db_fast, которая заполняет подключенную базу данных набором тестовых данных.

Реализованные методы описаны на справочной странице по адресу http://SERVER:PORT/help

Использованная литература: