Запуск сервера 1С, RAS сервиса и CRS сервиса на Linux
О том, как сделать "кошерный" запуск серверов хранилища конфигураций (вдруг еще кто-то до сих пор пользуется) и удаленного администрирования под 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 [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