Скрипт установки сервера хранилища конфигураций на современные версии linux с systemd

07.08.19

Разработка - Инструментарий разработчика

Устанавливаем сервер хранилища конфигураций 'crserver' на современные версии linux серверов, в которых используется systemd: Ubuntu 16+, Debian 8+, CentOS 7+ и т.п.

Скачать исходный код

Наименование Файл Версия Размер
Скрипт установки сервера хранилища на современные версии linux с systemd:
.sh 2,75Kb
26
.sh 1.0 2,75Kb 26 Скачать

Инструкция и скрипт по установке сервера хранилища конфигураций на 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. Скачать и распаковать в папку со скриптом нужные версии сервера 1С. А именно, 32-битные архивы deb_8_3_xx_xxxx.tar.gz, поскольку поддержка сервера хранилища все еще распространяется 1с только под 32-битные платформы.
    tar -xvzf deb_8_3_xx_xxxx.tar.gz

     

  2. Установить поддержку пакетов 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://<имя или адрес сервера хранилища>/<относительный путь к хранилищу>

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

crserver linux сервер хранилища

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    124927    682    389    

732

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    7768    24    6    

42

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 руб.

10.11.2023    4280    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2280 руб.

14.01.2013    178645    1083    0    

861

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99619    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18389    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23856    16    15    

33

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28320    3    10    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Infactum 316 14.08.18 10:31 Сейчас в теме
Кота в мешке качать предлагаете? Выложили бы на gist просто.
+
2. pfihr 374 16.08.18 11:42 Сейчас в теме
(1) Результаты работы на скриншоте, и это не кот в мешке.
Можете и сами такой скрипт написать, если опыта хватает и скачивать не хотите.
+
3. Infactum 316 16.08.18 12:16 Сейчас в теме
(2) Вопрос был больше для понимания ваших целей: SM срубить или действительно с сообществом поделиться.

Допустим я захочу баг в вашем скрипте поправить, или для rpm-based дистрибутивов адаптировать, мне тоже потом тему создавать? Или вам слать, чтобы вы его переопубликовали? Вот потому и нужен gist или аналог.
headMade; +1
4. ser6702 166 17.08.18 16:38 Сейчас в теме
5. papche 604 07.09.18 11:44 Сейчас в теме
(3) gist - не, не слышал. И нас таких темных - море. А еще темнее - вообще тьма. Так что, спасибо автору за просвящение
+
6. imiron 4 28.09.18 14:09 Сейчас в теме
Запустил скрипт, а сервис репозитория так и не стартует.
Во время выполнения скрипта он показывает что запущен, а потом сразу падает.
ubuntu 18
+
7. SergeyLunev 16.09.19 14:54 Сейчас в теме
(6) Получившийся после выполнения скрипта юнит systemd расположенный по адресу:
/etc/systemd/system/crserver1.service


Нужно заменить таким содержимым.


[Unit]
Description=crserver

[Service]
Type=oneshot
ExecStart=/opt/1C/v8.3/i386/crserver -daemon -port 1542 -d /mnt/storage
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target
Показать


После этого:

$ sudo systemctl daemon-reload
$ sudo systemctl enable crserver1.service
$ sudo systemctl start crserver1.service
$ sudo systemctl status crserver1.service

Будет работать:

+
8. Bukaska 140 16.09.19 15:41 Сейчас в теме
(7)Прикрепите картинку на этом форуме к сообщению, а не на сторонний хостинг. Картинка не показывается
+
10. real_MaxA 248 10.10.19 17:55 Сейчас в теме
(7) Работает, но от имени пользователя root.

Есть ли легитимный способ запустить эту службу от имени
User=usr1cv8
Group=grp1cv8

Не работает по причине отсутствия прав на запуск исполняемых файлов для пользователя/группы usr1cv8/grp1cv8.

Опции
1. Оставить запуск от root и не париться
2. Изменить владельца каталога /opt/1C/v8.3/x86_64/ целиком на пользователя usr1cv8

я оставляю как резервные. Считаю это применением "грубой силы" ("забить шуруп молотком").
+
11. real_MaxA 248 10.10.19 18:01 Сейчас в теме
(7) К слову, исходному скрипту всего-то не хватало настройки

RemainAfterExit=yes

Ну и указание пользователя/группы работает некорректно (см. (10))
+
12. a.x 21.01.20 06:00 Сейчас в теме
(7) После нескольких экспериментов пришел с следующему решению

[Unit]
Description=1C 8.3 Confiration Storage Server
After=network.target

[Service]
Type=simple
ExecStart=/opt/1C/v8.3/i386/crserver -port 1542 -d /path/to/storage

[Install]
WantedBy=multi-user.target
Показать

Основное отличие в том, чтобы запускать сервер хранилища не в качестве демона, иначе не совсем понятно, как systemd будет завершать сервис.

RemainAfterExit=yes не нужен, если Type=simple

Если возникает ошибка "Too many open files", заменяем ExecStart на следующее.

ExecStart=/bin/bash -c "ulimit -n 500000 && /opt/1C/v8.3/i386/crserver -port 1542 -d /path/to/storage"

К слову, скачивать скрипт не потребовалось. Одного этого файла оказалось достаточно.
kirillkr; +1
9. SergeyLunev 16.09.19 15:49 Сейчас в теме
Картинку предлагает в виде ссылки.
Прикрепил к данному сообщению вложением.
Прикрепленные файлы:
+
Оставьте свое сообщение