1C/Эльбрус: различия между версиями

Материал из ALT Linux Wiki
< 1C
м (+ссылки)
 
(не показаны 43 промежуточные версии 2 участников)
Строка 1: Строка 1:
{{Тимовец|Pauli|email=pauli@altlinux.org}}
{{Тимовец|Pauli|email=pauli@altlinux.org}}
{{Note|Данные, приведенные в статье, проверялись на вычислительном комплексе Эльбрус 801-РС ТВГИ.466535.175 с операционной системой Альт Рабочая станция 10 из дистрибутива alt-workstation-20211211-e2kv4. Оборудование и операционные системы находятся в состоянии интенсивной разработки, поэтому в вашем случае всё то же самое может работать лучше, хуже или не работать совсем. Вы предупреждены.}}
{{Note|Данные, приведенные в статье, проверялись с операционной системой Альт Рабочая станция 10 из дистрибутива alt-workstation-20211211-e2kv4. Оборудование и операционные системы находятся в состоянии интенсивной разработки, поэтому в вашем случае всё то же самое может работать лучше, хуже или не работать совсем. Вы предупреждены.}}
= Клиент =  
== Клиент ==
== Веб-клиент ==
=== Веб-клиент ===
Самый простой вариант. Согласно [https://v8.1c.ru/tekhnologii/sistemnye-trebovaniya-1s-predpriyatiya-8/ официальным данным], сейчас веб-клиент совместим с Mozilla Firefox версии 52 и выше. Проверить как это работает можно на сайте demo.1c.ru, например, для Бухгалтерии - по прямой [https://accounting.demo.1c.ru/accounting ссылке].
Самый простой вариант. Согласно [https://v8.1c.ru/tekhnologii/sistemnye-trebovaniya-1s-predpriyatiya-8/ официальным данным], сейчас веб-клиент совместим с Mozilla Firefox версии 52 и выше. Проверить как это работает можно на сайте demo.1c.ru, например, для Бухгалтерии - по прямой [https://accounting.demo.1c.ru/accounting ссылке].
== Тонкий клиент ==
=== Тонкий клиент ===
bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.18.1741/1cv8c
bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.18.1741/1cv8c


Только режим Предприятия.
Только режим Предприятия.
{{Note|Здесь и далее rtc_opt_rel_p1_x64_ob для систем на процессорах 8С, для 8СВ - rtc_opt_rel_p9_x64_ob}}
=== Толстый клиент ===
bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.18.1741/1cv8


== Толстый клиент ==
=== Интерактивный запуск клиента конкретной версии ===
bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.18.1741/1cv8
bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.18.1741/1cv8s
{{Note|В консоли никаких предупреждений быть не должно. В случае появления - разбираться. }}
 
Все режимы клиента - толстый, тонкий, веб-, и конфигуратор.


== Через программу запуска ==
=== Через программу запуска ===
bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/common/1cestart
bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/common/1cestart


Можно запустить все виды клиентов - толстый, тонкий, веб-, и конфигуратор.
Можно запустить все виды клиентов - толстый, тонкий, веб-, и конфигуратор. Автовыбор требуемой версии.


= Автономный сервер =
{{Note|В консоли никаких предупреждений быть не должно. В случае появления - разбираться. }}
== Автономный сервер с файловой базой данных==
 
== Автономный сервер ==
=== Автономный сервер с файловой базой данных ===
Работает. Пример запуска:
Работает. Пример запуска:
  e801 ~ # rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- /opt/1cv8/x86_64/8.3.21.1302/ibsrv --data=/home/1cdata --address=any
 
  bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.21.1302/ibsrv --data=/home/1cdata --address=any
  1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server started. Ctrl+C to exit.
  1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server started. Ctrl+C to exit.
  1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server ready.
  1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server ready.
^C1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server stopped.
 
В нашем примере заранее заранее подготовленный файл базы данных располагается в /home/1cdata/db-data/, параметр --address=any указывает принимать подключения с любых доступных интерфейсов (по умолчанию только с localhost). В данном случае приложение успешно (вплоть до остановки сервера по Ctrl+C) открывается по адресу http://e801.test.alt:8314
В нашем примере заранее заранее подготовленный файл базы данных располагается в /home/1cdata/db-data/, параметр --address=any указывает принимать подключения с любых доступных интерфейсов (по умолчанию только с localhost). В данном случае приложение успешно (вплоть до остановки сервера по Ctrl+C) открывается по адресу http://e801.test.alt:8314


Проблема: ошибка сегментирования при попытке запуска от обычного пользователя.
=== Автономный сервер с SQL-базой данных ===
e801 ~ # rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- /opt/1cv8/x86_64/8.3.21.1302/ibsrv --data=/home/1cdata --address=any --dbms=PostgreSQL --db-name=Accounting --db-server=localhost --db-user=postgres
1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server ready.
 
С правами обычного пользователя:


== Автономный сервер с SQL-базой данных ==
bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.21.1302/ibsrv --data=/home/1cdata --address=any --dbms=PostgreSQL --db-name=Accounting --db-server=localhost --db-user=postgres
e801 ~ # rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- /opt/1cv8/x86_64/8.3.21.1302/ibsrv --data=/home/1cdata --address=any --dbms=PostgreSQL --db-name=Accounting --db-server=localhost --db-user=postgres
  1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server started. Ctrl+C to exit.
  1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server started. Ctrl+C to exit.
  1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server ready.
  1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server ready.
Пользователю требуется право на запись в каталог, указанный параметром --data
{{Note|Требуется серверный ключ защиты программы}}
{{Note|Требуется серверный ключ защиты программы}}
= Рабочий сервер кластера =
 
== Рабочий сервер кластера ==
Установить и запустить bind.
Установить и запустить bind.
Настроить доменную зону, будущий рабочий сервер должен иметь имя, принадлежащее доменной зоне.
Настроить доменную зону, будущий рабочий сервер должен иметь имя, принадлежащее доменной зоне.
Строка 45: Строка 60:
* Сервер DNS лучше (правильнее) размещать на отдельной машине. Адреса настроенной доменной зоны должны разрешаться на всех рабочих серверах и клиентах 1С, для этой цели удобно на основном DNS организации настроить форвардинг. Или назначить A-запись рабочего сервера прямо на основном DNS в общей доменной зоне, если возможно. В данной статье описан сценарий подготовки тестового стенда, поэтому решения некоторых задач могут отличаться от применимых при промышленном развёртывании.   
* Сервер DNS лучше (правильнее) размещать на отдельной машине. Адреса настроенной доменной зоны должны разрешаться на всех рабочих серверах и клиентах 1С, для этой цели удобно на основном DNS организации настроить форвардинг. Или назначить A-запись рабочего сервера прямо на основном DNS в общей доменной зоне, если возможно. В данной статье описан сценарий подготовки тестового стенда, поэтому решения некоторых задач могут отличаться от применимых при промышленном развёртывании.   


== Установка и запуск PostgreSQL ==
=== Установка и запуск PostgreSQL ===
  e801 ~ # epm install postgresql13-1C-server postgresql13-1C-contrib
  e801 ~ # epm install postgresql13-1C-server postgresql13-1C-contrib
  e801 ~ # /etc/init.d/postgresql initdb
  e801 ~ # /etc/init.d/postgresql initdb
Строка 56: Строка 71:
  ...
  ...


== Создание чрута ==
=== Создание чрута ===
  wget http://mirror.yandex.ru/altlinux/p10/images/cloud/alt-p10-rootfs-minimal-x86_64.tar.xz
  wget http://mirror.yandex.ru/altlinux/p10/images/cloud/alt-p10-rootfs-minimal-x86_64.tar.xz
  mkdir -p /opt/x86_64
  mkdir -p /opt/x86_64
Строка 71: Строка 86:
  [x86_64] e801 ~ # sed -i 's,\[p10\] ,,' /etc/apt/sources.list.d/alt.list
  [x86_64] e801 ~ # sed -i 's,\[p10\] ,,' /etc/apt/sources.list.d/alt.list


  [x86_64] e801 ~ # apt-get update ''# Работает''
  [x86_64] e801 ~ # apt-get update  


Проблема сети
Проблема сети
Строка 87: Строка 102:
системы и заново запустить установку платформы. Отсутствующие пакеты приведены  
системы и заново запустить установку платформы. Отсутствующие пакеты приведены  
ниже и их можно скопировать в буфер обмена: <!-- если 1c-preinstall* их не тянет, надо дополнить // mike@ -->
ниже и их можно скопировать в буфер обмена: <!-- если 1c-preinstall* их не тянет, надо дополнить // mike@ -->
  libgtk+3 libenchant libharfbuzz-icu libgstreamer libgst-plugins libsecret  
  libgtk+3 libenchant libharfbuzz-icu libgstreamer libgst-plugins libsecret libsoup libsqlite3 libGL libEGL libXrender libXfixes libxslt
libsoup libsqlite3 libGL libEGL libXrender libXfixes libxslt
Для работы клиента дополнительно потребуются:
Дополнительно:
libxapps glibc-locales fonts-ttf-ms libunwind libXt
  libxapps
Полностью, одной командой:  
  apt-get install -y libgtk+3 libenchant libharfbuzz-icu libgstreamer libgst-plugins libsecret libsoup libsqlite3 libGL libEGL libXrender libXfixes libxslt libxapps glibc-locales libunwind libXt fonts-ttf-ms


Собственно развертывание:
Собственно развертывание:
[x86_64] e801 ~ # ./setup-full-8.3.21.1393-x86_64.run
или
rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/setup-full-8.3.21.1393-x86_64.run
Первый запуск, пока в режиме приложения:
e801 ~ # rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/x86_64/opt/1cv8/x86_64/8.3.21.1393/ragent
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Server Agent started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Cluster Manager started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Working Process started. Ctrl+C to exit.
^C
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Cluster Manager finished.
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Working Process finished.
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Server Agent finished.
При первом запуске в профиле пользователя, в подкаталоге .1cv8, формируются данные кластера.


[x86_64] e801 ~ # apt-get install 1c-preinstall-full libxapps
=== Юнит-файл systemd ===
/etc/systemd/system/srv1cv8.service


[x86_64] e801 ~ # ./setup-full-8.3.21.1302-x86_64.run
В каталоге установки, в данном случае /opt/1cv8/x86_64/8.3.21.1302/, должен быть шаблон юнит-файла systemd, файл srv1cv8-8.3.21.1302@.service


rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- /opt/setup-full-8.3.21.1302-x86_64.run
Его можно взять за основу, предварив значение параметра ExecStart указанием на запуск в чруте rtc:
И первый запуск, пока в режиме приложения:
e801 ~ # rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- /opt/x86_64/opt/1cv8/x86_64/8.3.21.1302/ragent
1C:Enterprise 8.3 (x86-64) (8.3.21.1302) Server Agent started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64) (8.3.21.1302) Cluster Manager started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64) (8.3.21.1302) Working Process started. Ctrl+C to exit.
^C
1C:Enterprise 8.3 (x86-64) (8.3.21.1302) Cluster Manager finished.
1C:Enterprise 8.3 (x86-64) (8.3.21.1302) Working Process finished.
1C:Enterprise 8.3 (x86-64) (8.3.21.1302) Server Agent finished.
При первом запуске в профиле пользователя, в подкаталоге .1cv8, формируются данные кластера.


== Юнит-файл systemd ==
<syntaxhighlight lang="ini">
srv1cv8.service
<source lang=txt>
[Unit]
[Unit]
Description=1C:Enterprise Server 8.3 (8.3.21.1302) (%I)
Description=1C:Enterprise Server 8.3 (8.3.21.1302) (%I)
Строка 165: Строка 183:
Group=grp1cv8
Group=grp1cv8


ExecStart=rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- \
ExecStart=rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- \
                         /opt/1cv8/x86_64/8.3.21.1302/ragent \
                         /opt/1cv8/x86_64/8.3.21.1302/ragent \
                         -d ${SRV1CV8_DATA} \
                         -d ${SRV1CV8_DATA} \
Строка 182: Строка 200:
DefaultInstance=default
DefaultInstance=default
WantedBy=multi-user.target
WantedBy=multi-user.target
</source>
</syntaxhighlight>


  e801 ~ # cp srv1cv8.service /etc/systemd/system
  e801 ~ # cp srv1cv8.service /etc/systemd/system
Строка 213: Строка 231:
  мая 11 13:50:28 e801.test.alt systemd[1]: /etc/systemd/system/srv1cv8.service:68: DefaultInstance= only makes sense for template units, ignoring.
  мая 11 13:50:28 e801.test.alt systemd[1]: /etc/systemd/system/srv1cv8.service:68: DefaultInstance= only makes sense for template units, ignoring.
  ~
  ~
== Сервер администрирования RAS ==
 
bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.18.1741/ras cluster --port=1545
=== Сервер администрирования RAS ===
bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.21.1302/ras cluster --port=1545
1C:Enterprise 8.3 (x86-64)  (8.3.18.1741) Remote Administration Server started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64)  (8.3.18.1741) Remote Administration Server started. Ctrl+C to exit.


== Сервер лицензирования ==
В каталоге установки, в данном случае /opt/1cv8/x86_64/8.3.21.1302/, должен быть шаблон юнит-файла systemd для ras, файл ras-8.3.21.1302.service. Если его скопировать в /etc/systemd/system/ и отредактировать
ExecStart=rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- \
 
Можно будет запускать ras через systemctl.
 
=== Ключи лицензирования ===
  [x86_64] e801 ~ # apt-get install haspd
  [x86_64] e801 ~ # apt-get install haspd
[x86_64] e801 ~ # service haspd start
Подключить токен(ы), проверить видимость в системе
  [x86_64] e801 ~ # /usr/sbin/usbkeytest --detect
  [x86_64] e801 ~ # /usr/sbin/usbkeytest --detect
  aladdin
  aladdin
{{attention|Ввиду того, что установка пакета haspd производится в чрут, a USB-токен должен распознаваться основной системой, необходимо переложить или скопировать /lib/udev/rules.d/80-hasp.rules из чрута в основную систему. Перезагрузиться, убедиться что в /dev появился подкаталог ./aks/hasp/ с файлом устройства внутри}}
[x86_64] e801 ~ # service haspd start
Если ключ(и) только локальные (однопользовательский или серверный), из основной системы можно и так
# rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /home -b /tmp -b /run/dbus -b /dev -b /proc -- /bin/sh -c /usr/sbin/aksusbd
Юнит-файл systemd /etc/systemd/system/aksusbd.service
<syntaxhighlight lang="ini">
[Unit]
Description=Sentinel LDK Runtime Environment (aksusbd daemon)
Before=hasplmd.service
Requires=
[Service]
Type=forking
ExecStart=rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -- \
/bin/sh -c /usr/sbin/aksusbd
[Install]
WantedBy=multi-user.target
</syntaxhighlight>
== Совместимое оборудование ==
Данные, приведенные в статье, проверялись на оборудовании:
* [http://old.mcst.ru/elbrus_801-pc Вычислительный комплекс Эльбрус 801-РС ТВГИ.466535.175] (1шт Эльбрус 8С, архитектура e2kv4, производитель [http://mcst.ru МЦСТ]);
* [https://servers.norsi-trans.ru/upload/iblock/295/Буклет%20Яхонт%20УВМ%20Э24sff.pdf Сервер ЯХОНТ-УВМ Э24] (Rack 2U, 1шт Эльбрус 8С архитектура e2kv4, 32GB RAM, 2шт SSD 240GB, 2xGeth, 2xБП, производитель [https://servers.norsi-trans.ru/catalog/ Норси-Транс]);
* [https://servers.norsi-trans.ru/upload/iblock/abc/z7salwm8uw0vb9qa293bz86376ce9zna/Листовка%20Яхонт%20УВМ%20Б41.pdf Сервер ЯХОНТ-УВМ Б41] (Rack 2U, 4шт Эльбрус 8СВ архитектура e2kv5, 256GB RAM, 2шт SSD 240GB, 2xGeth, 2xБП, производитель [https://servers.norsi-trans.ru/catalog/ Норси-Транс]);<ref name="NVME" />
* Машина вычислительная электронная промышленная панельная М К02 ЛКНВ.466215.019.02 (1шт Эльбрус 8С, архитектура e2kv4, производитель [https://ivk.ru АО "ИВК"])<ref name="1C-demo" />
== Примечания ==
<references>
<ref name="NVME">Дополнительное повышение производительности может быть достигнуто установкой опционального накопителя NVME, используемого под каталог баз данных. Проверялось с накопителем p5800x 400gb SSDPF21Q400GB01</ref>
<ref name="1C-demo">[[Файл:1С-elbrus-3.jpg|20px]] - фото экземпляра с демо-версией Бухгалтерии предприятия 3, впервые выставлялся на форуме «Армия-2022»</ref>
</references>
== Ссылки ==
* [http://1c.ru/news/info.jsp?id=30134 Поддержка процессоров Эльбрус-8С с версии 8.3.22 платформы "1С:Предприятие"]


{{Category navigation|title=1C|category=1C|sortkey=*}}
{{Category navigation|title=1C|category=1C|sortkey=*}}
{{Category navigation|title=E2K|category=E2K|sortkey=*}}
{{Category navigation|title=E2K|category=E2K|sortkey=*}}

Текущая версия от 23:06, 31 декабря 2022

Alt linux team.png Этот участник состоит в ALT Linux Team под ником Pauli.

e-mail: Pauli@altlinux.org


Примечание: Данные, приведенные в статье, проверялись с операционной системой Альт Рабочая станция 10 из дистрибутива alt-workstation-20211211-e2kv4. Оборудование и операционные системы находятся в состоянии интенсивной разработки, поэтому в вашем случае всё то же самое может работать лучше, хуже или не работать совсем. Вы предупреждены.

Клиент

Веб-клиент

Самый простой вариант. Согласно официальным данным, сейчас веб-клиент совместим с Mozilla Firefox версии 52 и выше. Проверить как это работает можно на сайте demo.1c.ru, например, для Бухгалтерии - по прямой ссылке.

Тонкий клиент

bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.18.1741/1cv8c

Только режим Предприятия.

Примечание: Здесь и далее rtc_opt_rel_p1_x64_ob для систем на процессорах 8С, для 8СВ - rtc_opt_rel_p9_x64_ob

Толстый клиент

bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.18.1741/1cv8

Интерактивный запуск клиента конкретной версии

bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.18.1741/1cv8s

Все режимы клиента - толстый, тонкий, веб-, и конфигуратор.

Через программу запуска

bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/common/1cestart

Можно запустить все виды клиентов - толстый, тонкий, веб-, и конфигуратор. Автовыбор требуемой версии.

Примечание: В консоли никаких предупреждений быть не должно. В случае появления - разбираться.


Автономный сервер

Автономный сервер с файловой базой данных

Работает. Пример запуска:

bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.21.1302/ibsrv --data=/home/1cdata --address=any
1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server ready.

В нашем примере заранее заранее подготовленный файл базы данных располагается в /home/1cdata/db-data/, параметр --address=any указывает принимать подключения с любых доступных интерфейсов (по умолчанию только с localhost). В данном случае приложение успешно (вплоть до остановки сервера по Ctrl+C) открывается по адресу http://e801.test.alt:8314

Автономный сервер с SQL-базой данных

e801 ~ # rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- /opt/1cv8/x86_64/8.3.21.1302/ibsrv --data=/home/1cdata --address=any --dbms=PostgreSQL --db-name=Accounting --db-server=localhost --db-user=postgres
1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server ready.

С правами обычного пользователя:

bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.21.1302/ibsrv --data=/home/1cdata --address=any --dbms=PostgreSQL --db-name=Accounting --db-server=localhost --db-user=postgres
1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64)  (8.3.21.1302) Stand-alone Server ready.

Пользователю требуется право на запись в каталог, указанный параметром --data

Примечание: Требуется серверный ключ защиты программы


Рабочий сервер кластера

Установить и запустить bind. Настроить доменную зону, будущий рабочий сервер должен иметь имя, принадлежащее доменной зоне.

Настроить разрешение имён на адрес, по которому слушает bind. Правильное разрешение адреса совершенно необходимо для запуска и работы рабочего сервера кластера. Проверить правильность настройки можно командой

ping `hostname`

И переключить систему инициализации сети в /etc/net, чтобы избежать варианта, когда bind запускается прежде инициализации сети - запустится, но отвечать не будет.

  • Сервер DNS лучше (правильнее) размещать на отдельной машине. Адреса настроенной доменной зоны должны разрешаться на всех рабочих серверах и клиентах 1С, для этой цели удобно на основном DNS организации настроить форвардинг. Или назначить A-запись рабочего сервера прямо на основном DNS в общей доменной зоне, если возможно. В данной статье описан сценарий подготовки тестового стенда, поэтому решения некоторых задач могут отличаться от применимых при промышленном развёртывании.

Установка и запуск PostgreSQL

e801 ~ # epm install postgresql13-1C-server postgresql13-1C-contrib
e801 ~ # /etc/init.d/postgresql initdb
e801 ~ # chkconfig postgresql on
e801 ~ # service postgresql start
e801 ~ # service postgresql status
e801 ~ # rpm -qa | grep rtc
rtc-4.1-alt1.E2K.1.e2kv4
...

Создание чрута

wget http://mirror.yandex.ru/altlinux/p10/images/cloud/alt-p10-rootfs-minimal-x86_64.tar.xz
mkdir -p /opt/x86_64
tar -C /opt/x86_64 -xf alt-p10-rootfs-minimal-x86_64.tar.xz

Определить резолвер для чрута (промышленно может пригодиться chrooted)

cp /etc/resolv.conf /opt/x86_64/etc/resolv.conf
e801 ~ # PS1="[x86_64] $PS1" rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- /bin/bash
[x86_64] e801 home # _

Отменить (удалить) требование подписи репозитория

[x86_64] e801 ~ # sed -i 's,\[p10\] ,,' /etc/apt/sources.list.d/yandex.list
[x86_64] e801 ~ # sed -i 's,\[p10\] ,,' /etc/apt/sources.list.d/alt.list
[x86_64] e801 ~ # apt-get update 

Проблема сети

[x86_64] e801 ~ # ping `hostname`; echo $?
254
[x86_64] e801 ~ # apt-get install bind-utils
[x86_64] e801 ~ # host `hostname`
;; reply from unexpected source: 192.168.1.1#53, expected 192.168.1.1#53
;; reply from unexpected source: 192.168.1.1#53, expected 192.168.1.1#53
;; connection timed out; no servers could be reached

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

libgtk+3 libenchant libharfbuzz-icu libgstreamer libgst-plugins libsecret libsoup libsqlite3 libGL libEGL libXrender libXfixes libxslt

Для работы клиента дополнительно потребуются:

libxapps glibc-locales fonts-ttf-ms libunwind libXt

Полностью, одной командой:

apt-get install -y libgtk+3 libenchant libharfbuzz-icu libgstreamer libgst-plugins libsecret libsoup libsqlite3 libGL libEGL libXrender libXfixes libxslt libxapps glibc-locales libunwind libXt fonts-ttf-ms

Собственно развертывание:

[x86_64] e801 ~ # ./setup-full-8.3.21.1393-x86_64.run

или

rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/setup-full-8.3.21.1393-x86_64.run

Первый запуск, пока в режиме приложения:

e801 ~ # rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/x86_64/opt/1cv8/x86_64/8.3.21.1393/ragent
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Server Agent started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Cluster Manager started. Ctrl+C to exit.
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Working Process started. Ctrl+C to exit.
^C
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Cluster Manager finished.
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Working Process finished.
1C:Enterprise 8.3 (x86-64) (8.3.21.1393) Server Agent finished.

При первом запуске в профиле пользователя, в подкаталоге .1cv8, формируются данные кластера.

Юнит-файл systemd

/etc/systemd/system/srv1cv8.service

В каталоге установки, в данном случае /opt/1cv8/x86_64/8.3.21.1302/, должен быть шаблон юнит-файла systemd, файл srv1cv8-8.3.21.1302@.service

Его можно взять за основу, предварив значение параметра ExecStart указанием на запуск в чруте rtc:

[Unit]
Description=1C:Enterprise Server 8.3 (8.3.21.1302) (%I)
Requires=network.target

[Service]
# 1C:Enterprise server keytab file.
# default - usr1cv83.keytab file in 1C:Enterprise server
#           installation directory
#
Environment=SRV1CV8_KEYTAB=/opt/1cv8/x86_64/8.3.21.1302/usr1cv8.keytab

# Cluster agent main port
Environment=SRV1CV8_PORT=1540

# Cluster main port for default cluster.
# This port is used by the cluster agent to address
# the central server. Cluster port is also specified
# as the IP port of the working server.
Environment=SRV1CV8_REGPORT=1541

# Port range for connection pool
# example values:
#   45:49
#   45:67,70:72,77:90
Environment=SRV1CV8_RANGE=1560:1591

# 1C:Enterprise server configuration debug mode
# empty value - off
# -debug - on
Environment=SRV1CV8_DEBUG=

# Path to directory with cluster data
Environment=SRV1CV8_DATA=/home/usr1cv8/.1cv8/1C/1cv8

# Security level:
# 0 - default - unprotected connections
# 1 - protected connections only for the time of user
#     authentication
# 2 - permanently protected connections
Environment=SRV1CV8_SECLEV=0

# Check period for connection loss detector, milliseconds
Environment=SRV1CV8_PINGPERIOD=1000

# Response timeout for connection loss detector, milliseconds
Environment=SRV1CV8_PINGTIMEOUT=5000


Type=simple
User=usr1cv8
Group=grp1cv8

ExecStart=rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- \
                        /opt/1cv8/x86_64/8.3.21.1302/ragent \
                        -d ${SRV1CV8_DATA} \
                        -port ${SRV1CV8_PORT} \
                        -regport ${SRV1CV8_REGPORT} \
                        -range ${SRV1CV8_RANGE} \
                        -seclev ${SRV1CV8_SECLEV} \
                        -pingPeriod ${SRV1CV8_PINGPERIOD} \
                        -pingTimeout ${SRV1CV8_PINGTIMEOUT} \
                        $SRV1CV8_DEBUG

Restart=always
RestartSec=1

[Install]
DefaultInstance=default
WantedBy=multi-user.target
e801 ~ # cp srv1cv8.service /etc/systemd/system
e801 ~ # systemctl daemon-reload
e801 ~ # systemctl enable srv1cv8
Created symlink /etc/systemd/system/multi-user.target.wants/srv1cv8.service → /etc/systemd/system/srv1cv8.service.
e801 ~ # adduser usr1cv8 
e801 ~ # groupadd grp1cv8
e801 ~ # chown -R usr1cv8:grp1cv8 usr1cv8
e801 home # systemctl start srv1cv8.service 
e801 home # systemctl status srv1cv8.service 
● srv1cv8.service - 1C:Enterprise Server 8.3 (8.3.21.1302) ()
    Loaded: loaded (/etc/systemd/system/srv1cv8.service; disabled; vendor preset: disabled)
    Active: active (running) since Wed 2022-05-11 13:50:23 MSK; 1h 37min ago
  Main PID: 6134 (ragent)
     Tasks: 164 (limit: 8560)
    Memory: 1.7G
       CPU: 9min 54.330s
    CGroup: /system.slice/srv1cv8.service
            ├─6134 /usr/bin/rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- /opt/1cv8/x86_64/8.3.21.1302/rage>
            ├─6143 [rtc compiler #0 for pid 6134] /opt/1cv8/x86_64/8.3.21.1302/ragent
            ├─6145 [rtc compiler #1 for pid 6134] /opt/1cv8/x86_64/8.3.21.1302/ragent
            ├─6159 /usr/bin/rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -x86_arg0 /opt/1cv8/x86_64/8.3.21.13>
            ├─6169 [rtc compiler #0 for pid 6159] /opt/1cv8/x86_64/8.3.21.1302/rmngr
            ├─6171 [rtc compiler #1 for pid 6159] /opt/1cv8/x86_64/8.3.21.1302/rmngr
            ├─6324 /usr/bin/rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -x86_arg0 /opt/1cv8/x86_64/8.3.21.13>
            ├─6331 [rtc compiler #0 for pid 6324] /opt/1cv8/x86_64/8.3.21.1302/rphost
            └─6333 [rtc compiler #1 for pid 6324] /opt/1cv8/x86_64/8.3.21.1302/rphost
мая 11 13:50:23 e801.test.alt systemd[1]: Started 1C:Enterprise Server 8.3 (8.3.21.1302) ().
мая 11 13:50:28 e801.test.alt systemd[1]: /etc/systemd/system/srv1cv8.service:68: DefaultInstance= only makes sense for template units, ignoring.
~

Сервер администрирования RAS

bash-4.4$ rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -b /etc -- /opt/1cv8/x86_64/8.3.21.1302/ras cluster --port=1545 1C:Enterprise 8.3 (x86-64) (8.3.18.1741) Remote Administration Server started. Ctrl+C to exit.

В каталоге установки, в данном случае /opt/1cv8/x86_64/8.3.21.1302/, должен быть шаблон юнит-файла systemd для ras, файл ras-8.3.21.1302.service. Если его скопировать в /etc/systemd/system/ и отредактировать

ExecStart=rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -b /home -- \

Можно будет запускать ras через systemctl.

Ключи лицензирования

[x86_64] e801 ~ # apt-get install haspd

Подключить токен(ы), проверить видимость в системе

[x86_64] e801 ~ # /usr/sbin/usbkeytest --detect
aladdin
Внимание! Ввиду того, что установка пакета haspd производится в чрут, a USB-токен должен распознаваться основной системой, необходимо переложить или скопировать /lib/udev/rules.d/80-hasp.rules из чрута в основную систему. Перезагрузиться, убедиться что в /dev появился подкаталог ./aks/hasp/ с файлом устройства внутри
[x86_64] e801 ~ # service haspd start

Если ключ(и) только локальные (однопользовательский или серверный), из основной системы можно и так

# rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /home -b /tmp -b /run/dbus -b /dev -b /proc -- /bin/sh -c /usr/sbin/aksusbd

Юнит-файл systemd /etc/systemd/system/aksusbd.service

[Unit]
Description=Sentinel LDK Runtime Environment (aksusbd daemon)
Before=hasplmd.service
Requires=

[Service]
Type=forking
ExecStart=rtc_opt_rel_p1_x64_ob --path_prefix /opt/x86_64 -b /tmp -b /run -b /dev -b /proc -- \
/bin/sh -c /usr/sbin/aksusbd

[Install]
WantedBy=multi-user.target

Совместимое оборудование

Данные, приведенные в статье, проверялись на оборудовании:

Примечания

  1. Дополнительное повышение производительности может быть достигнуто установкой опционального накопителя NVME, используемого под каталог баз данных. Проверялось с накопителем p5800x 400gb SSDPF21Q400GB01
  2. 1С-elbrus-3.jpg - фото экземпляра с демо-версией Бухгалтерии предприятия 3, впервые выставлялся на форуме «Армия-2022»

Ссылки