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

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

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


Необходим в среде GNU/Linux для управления кластером серверов 1С Предприятия. Чтобы его запустить можно воспользоваться следующим файлом сервиса<blockquote>
Необходим в среде GNU/Linux для управления кластером серверов 1С Предприятия. Чтобы его запустить можно воспользоваться следующим файлом сервиса
<code>[Unit]
 
<code>Description=1C:Enterprise Remote Administration Service (%i)
 
<code>After=network.target


<blockquote>
[Unit]
Description=1C:Enterprise Remote Administration Service (%i)
After=network.target
   
   
[Service]
[Service]
  Type=simple
  Type=simple
  # Name of the cluster host
  # Name of the cluster host
Строка 39: Строка 38:
  User=usr1cv8
  User=usr1cv8
  Group=grp1cv8
  Group=grp1cv8


  [Install]
  [Install]
  DefaultInstance=default
  DefaultInstance=default
  WantedBy=multi-user.target</code>
  WantedBy=multi-user.target
</blockquote>Который вы можете поместить в каталог /etc/systemd/system с именем [email protected]
</blockquote>
 
Который вы можете поместить в каталог /etc/systemd/system с именем [email protected]


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

Версия от 20:46, 7 января 2024

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

Скачать файлы

Данная статья является дополнением (продолжением) к первой статье по 1C и 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 # Nubler 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