Запуск сервера 1С, RAS сервиса и CRS сервиса на Linux

Материал из iSphinx Home Wiki

О том, как сделать "кошерный" запуск серверов хранилища конфигураций (вдруг еще кто-то до сих пор пользуется) и удаленного администрирования под GNU/Linux с использованием systemd

Несмотря на то, что фирма 1С совершает поступательные движения навстречу пользователям ее продукции, все равно остаются "белые пятна", которые приходится восполнять самостоятельно! К таким "недоработкам", как мне кажется, относятся механизмы запуска сервисов 1С Предприятия на платформе GNU/Linux. В частности, речь идет о сервере хранилища конфигураций (он же crserver) и сервере удаленного управления (он же ras)

Платформа версий 8.3.18 и старше принесла нам возможность "из коробки" устанавливать одновременно более одной версии 1С Предприятия на Linux-сервера. В Платформе 8.3.21 и старше "в коробке" даже появился мультисервисный файл systemd для сервера 1С Предприятия. Однако, при этом для сервера удаленного управления "в коробку" почему-то положили обычный (не мультисервисный) файл systemd. Что же касается сервера хранилища конфигураций, то там вообще никаких инструментов запуска "в коробку" не поместили.

Сохраняя "концепцию" первой статьи, в данном материале представлены мультисервисные файлы systemd для запуска серверов хранилища конфигураций и удаленного управления.

ВАЖНО: Изложенная ниже информация относится к 64-х разрядной версии Платформы, если у вас 32-х разрядная, придется внести некоторые коррективы в приведенные здесь файлы!


Сервер удаленного управления (RAS) Сервер удаленного управления (RAS)

Необходим в среде GNU/Linux для управления кластером серверов 1С Предприятия. Чтобы его запустить можно воспользоваться следующим файлом сервиса

[Unit]
Description=1C:Enterprise Remote Administration Service (%i)
After=network.target 

[Service]
Type=simple
# Name of the cluster host
Environment=SRV1CV8_HOST=localhost
# Number of the cluster port
Environment=SRV1CV8_PORT=1540
# Number of the RAS port
Environment=RAS1CV8_PORT=1542

ExecStart=/bin/sh -c "/opt/1cv8/x86_64/%i/ras cluster --port ${RAS1CV8_PORT} ${SRV1CV8_HOST}:${SRV1CV8_PORT}"

KillSignal=SIGINT
PrivateTmp=true
Restart=on-failure
RestartSec=5
User=usr1cv8
Group=grp1cv8

[Install]
DefaultInstance=default
WantedBy=multi-user.target

Который вы можете поместить в каталог /etc/systemd/system с именем [email protected]

Если вы установили пакеты, например, версии 8.3.22.2239, то для запуска сервера удаленного администрирования потребуется выполнить следующую команду

sudo systemctl start [email protected]

Чтобы прописать данный сервис в автозапуск необходимо выполнить команду

sudo systemctl enable ras1cv83@8.3.22.2239

Если вы хотите запустить второй экземпляр сервера удаленного администрирования для второго кластера, например версии платформы 8.3.18.1959, который работает на порту 2540, то вам необходимо сделать следующее:

Выполнить команду‎

sudo systemctl edit ras1cv83@8.3.18.1959

В открывшемся редакторе ввести следующее‎

[Service]
Environment=SRV1CV8_PORT=2540
Environment=RAS1CV8_PORT=2545

Выйти из редактора с сохранением изменений и выполнить команду

sudo systemctl daemon-reload

После чего можно запустить сервер удаленного администрирования для кластера версии 8.3.18.1959 командой

sudo systemctl enable --now [email protected]

Сервер удаленного управления будет слушать порт 2545, а управлять кластером, агент которого работает на порту 2540

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

Сервер хранилища конфигураций

Чтобы запустить сервер хранилища можно воспользоваться следующим файлом сервиса

[Unit]
Description=1C:Enterprise Configuration Repository Server (%i)
After=network.target

[Service]
Type=simple
User=usr1cv8
Group=grp1cv8

# Path to directory with crs data
Environment=CRS1CV8_DATA=/home/usr1cv8/.1cv8/1C/1cv8

# Number of the crs port
Environment=CRS1CV8_PORT=1542

ExecStart=/bin/sh -c "/opt/1cv8/x86_64/%i/crserver -port ${CRS1CV8_PORT} -d ${CRS1CV8_DATA}"

KillSignal=SIGINT
PrivateTmp=true
Restart=on-failure
RestartSec=5

[Install]
DefaultInstance=default
WantedBy=multi-user.target

Который вы можете поместить в каталог /etc/systemd/system с именем [email protected]

Если вы установили пакеты, например, версии 8.3.22.2239, то для запуска сервера хранилища конфигураций потребуется выполнить следующую команду

sudo systemctl start [email protected]

Чтобы прописать данный сервис в автозапуск необходимо выполнить команду

sudo systemctl enable [email protected]

Если вы хотите запустить второй экземпляр сервера хранилища, который будет работать на порту 1642 и носить имя crs1cv83@second, а данные будет хранить в каталоге /crc/second, то вам необходимо сделать следующее

Выполнить команды

sudo ln -s /opt/1cv8/x86_64/8.3.22.2239 /opt/1cv8/x86_64/second
sudo systemctl edit crs1cv83@second

В открывшемся редакторе ввести следующее

[Service]
Environment=CRS1CV8_DATA=/crs/second
Environment=CRS1CV8_PORT=2642

Выйти из редактора с сохранением изменений и выполнить команду

sudo systemctl daemon-reload

После чего можно запустить сервер хранилища конфигураций командой

sudo systemctl enable --now crs1cv83@second

Примечания

Допускаю, что не всем подойдет выбранная схема "шаблонизации" сервисов (по версии платформы), но тут каждый может скорректировать файлы сервиса под свой сценарий использования

В случаях, когда у вас используется один сервер 1С Предприятия и рядом сервер удаленного управления, то при обновлении версии Платформы 1С вам достаточно будет выполнить серию команд (например, у вас была 8.3.18.1959, установили 8.3.22.1923)

sudo systemctl disable --now [email protected]
sudo systemctl disable --now [email protected]
sudo systemctl enable --now [email protected]
sudo systemctl enable --now [email protected]

У вас не будет необходимости удалять старый файл сервиса и добавлять новый, как это предполагает "решение из коробки", достаточно просто остановить сервисы старой версии и запустить сервисы новой!

Файлы сервисов вы так же сможете найти на Gihub