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

07.08.19

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Скрипт установки сервера хранилища на современные версии linux с systemd:
.sh 2,75Kb ver:1.0
28
28 Скачать (2 SM) Купить за 2 150 руб.

Инструкция и скрипт по установке сервера хранилища конфигураций на 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 сервер хранилища

См. также

SALE! %

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

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

12000 10000 руб.

02.09.2020    166429    924    403    

899

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    10292    86    36    

93

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    25580    88    48    

132

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

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

22200 руб.

06.10.2023    16410    40    9    

75

SALE! %

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

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

15000 10000 руб.

10.11.2023    11151    40    27    

66

SALE! %

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

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

4800 3840 руб.

14.01.2013    189760    1146    0    

916

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

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

5000 руб.

07.02.2018    103662    244    100    

306

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

2220 руб.

21.02.2023    8430    8    38    

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

Допустим я захочу баг в вашем скрипте поправить, или для rpm-based дистрибутивов адаптировать, мне тоже потом тему создавать? Или вам слать, чтобы вы его переопубликовали? Вот потому и нужен gist или аналог.
headMade; +1 Ответить
4. ser6702 174 17.08.18 16:38 Сейчас в теме
5. papche 618 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 253 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 253 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 Сейчас в теме
Картинку предлагает в виде ссылки.
Прикрепил к данному сообщению вложением.
Прикрепленные файлы:
Оставьте свое сообщение