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

Материал из ALT Linux Wiki
< 1C
(Новая страница: «{{Тимовец|Pauli|email=pauli@altlinux.org}} = Веб-клиент = = Тонкий клиент = = Толстый клиент = = Автономный сервер = = Рабочий сервер = {{Category navigation|title=1C|category=1C|sortkey=*}} {{Category navigation|title=E2K|category=E2K|sortkey=*}}»)
 
м (+ссылки)
 
(не показана 71 промежуточная версия 3 участников)
Строка 1: Строка 1:
{{Тимовец|Pauli|email=pauli@altlinux.org}}
{{Тимовец|Pauli|email=pauli@altlinux.org}}
= Веб-клиент =
{{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 ссылке].
= Рабочий сервер =
=== Тонкий клиент ===
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/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
 
Можно запустить все виды клиентов - толстый, тонкий, веб-, и конфигуратор. Автовыбор требуемой версии.
 
{{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/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
 
{{Note|Требуется серверный ключ защиты программы}}
 
== Рабочий сервер кластера ==
Установить и запустить bind.
Настроить доменную зону, будущий рабочий сервер должен иметь имя, принадлежащее доменной зоне.
 
Настроить разрешение имён на адрес, по которому слушает bind. Правильное разрешение адреса совершенно необходимо для запуска и работы рабочего сервера кластера.
Проверить правильность настройки можно командой
ping `hostname`
И переключить систему инициализации сети в [[etcnet|/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
 
Определить резолвер для чрута (промышленно может пригодиться {{pkg|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С:Предприятие" завершилась успешно, необходимо самостоятельно
установить отсутствующие пакеты с помощью пакетного менеджера операционной
системы и заново запустить установку платформы. Отсутствующие пакеты приведены
ниже и их можно скопировать в буфер обмена: <!-- если 1c-preinstall* их не тянет, надо дополнить // mike@ -->
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:
 
<syntaxhighlight lang="ini">
[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
</syntaxhighlight>
 
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
{{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»

Ссылки