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

См. также

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

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

15500 руб.

02.09.2020    178555    987    403    

947

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

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

8400 руб.

20.08.2024    20047    132    70    

134

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

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

22200 руб.

06.10.2023    18966    51    19    

83

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

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

15000 руб.

10.11.2023    12959    53    33    

72

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

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

9360 руб.

17.05.2024    29146    100    48    

146

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

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18693    7    32    

43

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1801    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 175 17.08.18 16:38 Сейчас в теме
5. papche 624 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 Сейчас в теме
Картинку предлагает в виде ссылки.
Прикрепил к данному сообщению вложением.
Прикрепленные файлы:
Оставьте свое сообщение