Персональный сервер 1С с базами на ноутбуке аудитора

В этой статье описан успешный опыт развёртывания персонального сервера приложений 1С Предприятия 8.3 на достаточно мощном (Intel Core i7)  ноутбуке российского аудитора, который по долгу службы проверяет огромную базу данных 1С Бухгалтерии 8.3, не вмещающуюся в файловый формат (база 1С как обычный файловый каталог имеет ограничение по размеру некоей внутренней таблицы).

Для этой цели на ноутбук аудитора под управлением MS Windows 8 (или 10) 64 bit была установлена бесплатная версия виртуальной машины, и уже в виртуальной среде была установлена обычная «графическая» (desktop) версия Ubuntu Linux 15.10 32 bit (до этого мы ставили более раннюю версию Ubuntu типа 10.10, но она затем «сломалась», и мы поставили 15.10) .

Затем на Ubuntu Linux был штатным образом развёрнут сервер 1С Предприятия 8.3  32 bit (и клиент попутно тоже, но он оказался не нужен, так как виртуальная машина работала лишь как серверное обеспечение).

Сервер баз данных я решил ставить не в виртуальной среде, а под управлением хост-машины MS Windows, чтобы

  1. он работал быстрее (не тратились процессорные такты на эмуляцию),
  2. быстро выделять и освобождать место под массивную базу (или базы!) данных.

Для этого на ноутбуке под управлением MS Windows 8 (или 10) была установлена СУБД PostgreSQL версии 9.4.2-1.1C для Windows 64-bit (дистрибутив скачан с сайта технической поддержки фирмы 1С). То, что СУБД и сервер 1С Предприятия имеют разную битность и взаимодействуют друг с другом по сети (через протокол TCP IP) — это совершенно нормально.

Всё установленное программное обеспечение было полностью лицензионным : хост-машина, ОС Linux на ней, сервер приложений 1С на Linux, СУБД PostgreSQL на MS Windows.

Всё это изначально мы проделывали с системным администратором, услугами которого пользуется аудитор (я же представлял заказчика, чья база проверяется аудитором). Системный администратор простые шаги (скачать, установить) делал по моей указке, а самые ответственные и сложные шаги в процессе настройки делал я.

После развёртывания системы нужно было понять, какое имя (или адрес) имеет виртуальная машина. Войдя в Ubuntu Linux как пользователь (для этой простой цели можно входить и гостем), я узнал IP адрес дочерней системы — 192.168.79.128. Имя хоста дочерней системы — ubuntu . Соответственно, в файле hosts на хост-машине (под управлением Windows) была сделана запись

192.168.79.128 ubuntu

Запуск PostgreSQL был настроен не службой (служба есть, но она после запуска сразу остановится из-за «нечего делать»). После того, как все службы (сервер приложения 1С и сервер баз данных PostgreSQL) успешно запустились, оказалось, что сервер 1С не видит сервер баз данных. Свободное программное обеспечение работает из коробки в наиболее защищённой конфигурации. Мы стали настраивать эту связку, ослаблять защиту.

Сначала настроили СУБД PostgreSQL : внесли в конфигурационный файл разрешение входить в базы с любых IP адресов (0.0.0.0).

Потом отключили брандмауэр Windows (firewall). Всё заработало.

Но аудитор проверил базу 1С и через некоторое время (кто-то) включил на этом компьютере брандмауэр Windows. Я решил сделать так, чтобы связка программ работала и при включенном брандмауэре Windows.

Запустив команду

netstat -ab

, я вычислил приложение, которое слушает порт 5432 (на нём происходит соединение с БД). Это postgresql.exe .

Я изучил расширенные настройки брандмауэра Windows. Нашёл в свойствах брандмауэра Windows разрешающее правило для приложения postgresql.exe и разрешил в этом правиле все протоколы, все сетевые интерфейсы и «смену узлов». Ранее был разрешен только TCP IP, смена узлов была запрещена.  Сразу после применения этого правила всё заработало. Соответственно, брандмауэр Windows в этот раз я не отключал.

Аудитору я объяснил, как включать виртуальную машину и как её выключать (чтобы сервер 1С, работающий внутри виртуальной среды, принимал соединения с клиентов 1С и переадресовывал их «наружу» в СУБД под управлением материнской операционной системы).

Откуда вообще возникла эта тема? На мой взгляд, ни один человек в здравом уме не решился бы иметь на своём компьютере такой сложный «слоёный» пирог из разных программных продуктов. Да и необходимости в нём изначально не было. Аудитор сначала копировала на свой ноут файловую базу (обсуждаемой в статье организации) и чувствовала себя хорошо. Но вот база выросла (объем DT-файла стал около 800 Мбайт) и перестала копироваться в файловую версию. Аудитор сначала не могла поверить в это, потом долго не могла понять, как это вообще бывает. Моё хорошо аргументированное письмо не помогло, пришлось общаться с системным администратором. Он тоже не смог ей объяснить технические детали.

А тут ещё наша организация переехала в труднодоступное (для аудитора) место. Ей было неудобно приезжать к нам в офис, чтобы работать с копией базы (в локальной сети организации). И подключения к сети организации через протокол VPN ей не давали (так как она не сотрудница организации). К хорошему, как известно, быстро привыкаешь, а отвыкнуть уже сложно. Так и аудитор — поставила задачу своему сисадмину обеспечить её локальным доступом к базе, тем более что я в своём «аргументированном» письме показывал способы реализации этого обеспечения.

Настала очередь «тормозить» системному администратору аудитора. Мне поступил запрос : прислать «просто файлы, в которых лежит база». Я прислал (файлы MS SQL), и сисадмин «повертел эти файлы в руках», но базу без дополнительных настроек не удалось к ним подцепить, так как нужно было ставить сервер СУБД и сервер приложений, а для запуска сервера приложений под Windows требуется ключ защиты. Возможно, системный администратор аудитора даже попытался запустить сервер 1С под Windows, но у него не получилось сломать защиту (точно не могу это утверждать). Я не ломаю программы 1С, и не консультирую на этот счёт.

В то время как для запуска сервера приложений 1С под управлением OC Linux до достижения 12 (точнее, 13) соединений с сервером 1С лицензионного ключа сервера 1С не требуется! Потому я и решил, в качестве окончательного совета, предложить системному администратору аудитора установить виртуальную машину с Ubuntu Linux. Неожиданно для меня, системный администратор аудитора согласился на это «безумие», и в нерабочее время (например, в вечер воскресенья) мы с ним делали эту неблагодарную академическую работу. Системный администратор сразу предупредил, что он мало что понимает в Linux, поэтому все настройки он сразу отдал в моё ведение. Но версию хост-машины он выбрал сам (хотя я советовал ему ставить конкретную бесплатную версию VMware-player-6.0.1-1379776.exe, которую нам давали в курсе разработки мобильного приложения 1С), и Linux он устанавливал сам.

Версия Ubuntu Linux 10.10 под управлением виртуальной машины «сломалась» по непонятной причине. Её просто не смогли запустить в очередной раз, операционная система не смогла смонтировать корневой раздел в режиме чтения/записи. Возможно, пропало питание в ноутбуке, и какие-то файлы корректно не закрылись (Linux этого не любит). После этого сбоя я посоветовал системному администратору аудитора делать резервные копии виртуальной машины.

Кстати, не все файлы выгрузки объемом 800 с лишним мегабайт отказываются разворачиваться в файловую версию базы 1С. У нас есть файл выгрузки базы 1С объемом 880 Мбайт, который прекрасно разворачивается в файловую версию базы.

Запись опубликована в рубрике Дележка опытом с метками , , , , . Добавьте в закладки постоянную ссылку.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.