Запуск сервера 1С, RAS сервиса и CRS сервиса на Linux: различия между версиями

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

Строка 10: Строка 10:
==== Сервер удаленного управления (RAS) ====
==== Сервер удаленного управления (RAS) ====


Необходим в среде GNU/Linux для управления кластером серверов 1С Предприятия. Чтобы его запустить можно воспользоваться следующим файлом сервиса:<syntaxhighlight lang="bash" style="border: 1px dashed gray;">
Необходим в среде GNU/Linux для управления кластером серверов 1С Предприятия. Чтобы его запустить можно воспользоваться следующим файлом сервиса:<syntaxhighlight lang="bash">
[Unit]
[Unit]
Description=1C:Enterprise Remote Administration Service (%i)
Description=1C:Enterprise Remote Administration Service (%i)
Строка 46: Строка 46:
Если вы хотите запустить второй экземпляр сервера удаленного администрирования для второго кластера, например версии платформы 8.3.18.1959, который работает на порту 2540, то вам необходимо сделать следующее:
Если вы хотите запустить второй экземпляр сервера удаленного администрирования для второго кластера, например версии платформы 8.3.18.1959, который работает на порту 2540, то вам необходимо сделать следующее:


Выполнить команду‎:
‎<pre>Выполнить команду‎:‎</pre>
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo systemctl edit [email protected]</syntaxhighlight>
sudo systemctl edit [email protected]</syntaxhighlight>

Версия от 06:25, 9 января 2024

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

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

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

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

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

Сервер удаленного управления (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] Который вы можете поместить в каталог /etc/systemd/system с именем [email protected]

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

sudo systemctl start [email protected]

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

sudo systemctl enable [email protected]

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

Выполнить команду‎:‎
sudo systemctl edit [email protected]

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

[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