#!/usr/bin/python3 # -*- coding: utf-8 -*- """ Конфигурационный файл для SSH клиента и миграции 1С ВНИМАНИЕ: Не коммитьте этот файл в публичные репозитории! Пароли хранятся в открытом виде в этом файле. """ # SSH настройки SSH_CONFIG = { "hostname": "g.it.cln.su", "port": 22222, # Порт должен быть int "username": "root", "pkey_file": "/root/.ssh/id_rsa", "host_keys": "~/.ssh/known_hosts" } # PostgreSQL настройки POSTGRESQL_CONFIG = { "archive_server": "1c.it.cln.su", "restore_server": "postgres.it.cln.su", "backup_date": "16.12.2025", "extra_backup": True, "postgres_user": "postgres", "postgres_password": "PrestigePostgres" } # 1C настройки C1_CONFIG = { "lxc_container_name": "c1", # Имя LXC контейнера с сервером 1С "cluster_user": "neon", "cluster_password": "Pre$tige310582", # Настройки для обновления базы 1С (используются в c1_base_info_update) # "db_server": "/tmp", # "db_user": "usr1cv8", # "db_password": "", "db_server": "postgres.it.cln.su", "db_user": "postgres", "db_password": "PrestigePostgres", # "db_name": "", # Имя базы данных PostgreSQL (если пустое, будет использовано имя базы 1С) "infobase_user": "neon", "infobase_password": "$F%G^H&J*K" } # Списки баз данных для миграции и примеров использования MIGRATION_CONFIG = { "archive_bases_name": [ # 'konsaltpt-buhg', # 'vpr-ut-crm', # 'quant-ut', # 'kompromis-test', # 'luna-ut', # 'messinia-buhg', # 'morea-buhg', # 'horen-ut', 'salon', 'lmotor-ut', 'staretail', 'uran-ut', ], "restore_bases_name": None, # Если None, будет использован archive_bases_name "bases": None, # Список баз для обработки в примерах (example_c1_cluster.py, example_postgresql.py) # Если None, будет использован archive_bases_name "scheduled_jobs_deny": "on", # Запрет запланированных заданий для всех баз (on/off) "sessions_deny": "off" # Запрет сеансов для всех баз (on/off) } def get_config(): """ Возвращает конфигурацию проекта Returns: dict: Словарь с конфигурацией, содержащий секции: - ssh: настройки SSH подключения - postgresql: настройки PostgreSQL - c1: настройки 1С кластера - migration: настройки миграции баз данных (включая список баз для примеров) """ config = { 'ssh': SSH_CONFIG.copy(), 'postgresql': POSTGRESQL_CONFIG.copy(), 'c1': C1_CONFIG.copy(), 'migration': MIGRATION_CONFIG.copy() } # Если restore_bases_name не указан, используем archive_bases_name if config['migration']['restore_bases_name'] is None: config['migration']['restore_bases_name'] = config['migration']['archive_bases_name'].copy() # Если bases не указан, используем archive_bases_name для примеров if config['migration']['bases'] is None: config['migration']['bases'] = config['migration']['archive_bases_name'].copy() # Валидация scheduled_jobs_deny и sessions_deny scheduled_jobs_deny = config['migration'].get('scheduled_jobs_deny', 'off') sessions_deny = config['migration'].get('sessions_deny', 'off') if scheduled_jobs_deny not in ['on', 'off']: raise ValueError(f"scheduled_jobs_deny должен быть 'on' или 'off', получено: {scheduled_jobs_deny}") if sessions_deny not in ['on', 'off']: raise ValueError(f"sessions_deny должен быть 'on' или 'off', получено: {sessions_deny}") # Устанавливаем значения по умолчанию, если не указаны config['migration']['scheduled_jobs_deny'] = scheduled_jobs_deny config['migration']['sessions_deny'] = sessions_deny return config