Инструкция и скрипт по установке сервера хранилища конфигураций на linux-сервер с системным менеджером systemd
Операционные системы: linux с менеджером systemd (Ubuntu 16+, Debian 8+, CentOS 7+ и т.п.)
Внимание! Скрипт рассчитан на запуск в дистрибутивах, основанных на Debian. Для работы скрипта под RHEL-дистрибутивами потребуется небольшая адаптация скрипта и процедуры ниже.
Пару слов о необходимости
Не секрет, что групповая разработка конфигурации в системе «1С:Предприятия» 8.3 производится с использованием хранилища конфигурации. Доступ разработчиков к хранилищу конфигурации может осуществляться как по локальной сети, когда файлы базы данных располагаются на общем сетевом ресурсе, так и по протоколу tcp или http, когда хранилище конфигурации представляет собой по сути облачный сервис.
В случае, когда хранилище расположено в локальной сети, необходимо организовывать совместный доступ к общей папке Windows, для чего необходимо содержать целый сервер и обеспечивать его безопасность. Зачастую, такие общие папки располагаются на одном и том же терминальном сервере, где работают все разработчики, либо в общей папке для локальной сети на одном из компьютеров или серверов.
Такая архитектура работы с хранилищем не всегда удобна. Когда разработчиков много, или они находятся в разных отдаленных локациях, у разработчиков уменьшается мобильность и появляется зависимость от наличия и толщины канала связи к терминальному серверу, а так же зависимость от его производительности для целей отладки приложений.
В тех случаях, когда команда должна быть мобильной, распределенной и состоящей преимущественно из удаленно работающих специалистов, или над несколькими проектами работают разные группы разработчиков, на первый план выходит распределенная архитектура организации совместной разработки.
Для реализации такой архитектуры в комплекте поставки платформы 1С:Предприятие предусмотрена установка сервера хранилища конфигураций. Сервер хранилища конфигураций представляет собой сетевую службу (облачный сервис), по умолчанию «слушающую» порт 1542 (или любой другой) и обеспечивающую взаимодействие клиентских приложений (конфигуратора) с базой данных хранилища конфигурации. Одна такая служба может обслуживать множество хранилищ конфигураций. В такой архитектуре доступ к хранилищу будет надежно защищен от посторонних.
Для того, чтобы сократить стоимость владения сервером хранилища конфигураций, или со спокойной совестью опубликовывать его в сеть Интернет, целесообразно устанавливать его на сервера по управлением ОС Linux. Благо, 1с уже давно выпускает версии ПО под эту операционную систему. Однако, установки в виде сервиса (демона), который автоматически бы запускался при старте ОС Linux с помощью менеджера systemd, в комплекте поставки до сих пор не предусмотрено, поэтому на свет и появился данный скрипт установки. P.S. В большинстве публикаций используются старые скрипты для upstart (init.d), и они уже давно устарели.
Далее рассматривается установка сервера хранилища конфигураций с протоколом tcp.
Предварительные настройки
Перед тем, как установить сервер хранилища конфигурации, необходимо провести подготовительные действия (далее показаны действия для Debain-дистрибутивов):
- Скачать и распаковать в папку со скриптом нужные версии сервера 1С. А именно, 32-битные архивы deb_8_3_xx_xxxx.tar.gz, поскольку поддержка сервера хранилища все еще распространяется 1с только под 32-битные платформы.
tar -xvzf deb_8_3_xx_xxxx.tar.gz
- Установить поддержку пакетов i386, а затем пакеты 1c-enterprise-common, server, ws и crs:
sudo dpkg --add-architecture i386 sudo apt-get update sudo apt-get install libc6-i386 libc6:i386 sudo dpkg -i 1c-enterprise83-* sudo apt-get -f install
Запуск скрипта установки системного сервиса systemd
Теперь все готово для установки системного демона с помощью скрипта. Сделаем это:
sudo EXEC1CRS=/opt/1C/v8.3/i386/crserver USER1C=usr1cv8 GROUP1C=grp1cv8 PORT1C=1542 REPO1C=/home/usr1cv8/.1cv8 install_crserver.sh
Здесь опционально используются параметры (указаны их значения по умолчанию):
EXEC1CRS = путь к исполняемому файлу сервера хранилища конфигураций crserver
USER1C и GROUP1C = имя пользователя и группы для запуска системного сервиса, они должны существовать к моменту запуска скрипта
PORT1C = порт, на котором будет работать tcp-сервер хранилища конфигурации
REPO1C = путь к каталогу, в котором будут располагаться все используемые хранилища конфигураций
В результате установки получим логи и статус запущенного сервера:
Действия после установки
Путь к хранилищу определяется по шаблону:
tcp://<имя или адрес сервера хранилища>/<относительный путь к хранилищу>
После установки достаточно создать нужные папки с хранилищами, внутри папки, которая была указана при установке сервера, и с помощью конфигуратора создать хранилище в этой папке.