1C/Эльбрус
Этот участник состоит в ALT Linux Team под ником Pauli.
e-mail: Pauli@altlinux.org |
Клиент
Веб-клиент
Самый простой вариант. Согласно официальным данным, сейчас веб-клиент совместим с 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
Только режим Предприятия.
Толстый клиент
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
[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
Совместимое оборудование
Данные, приведенные в статье, проверялись на оборудовании:
- Вычислительный комплекс Эльбрус 801-РС ТВГИ.466535.175 (1шт Эльбрус 8С, архитектура e2kv4, производитель МЦСТ);
- Сервер ЯХОНТ-УВМ Э24 (Rack 2U, 1шт Эльбрус 8С архитектура e2kv4, 32GB RAM, 2шт SSD 240GB, 2xGeth, 2xБП, производитель Норси-Транс);
- Сервер ЯХОНТ-УВМ Б41 (Rack 2U, 4шт Эльбрус 8СВ архитектура e2kv5, 256GB RAM, 2шт SSD 240GB, 2xGeth, 2xБП, производитель Норси-Транс);[1]
Примечания
- ↑ Дополнительное повышение производительности может быть достигнуто установкой опционального накопителя NVME, используемого под каталог баз данных. Проверялось с накопителем модель p5800x 400gb SSDPF21Q400GB01