1C/Эльбрус: различия между версиями
Pauli (обсуждение | вклад) (→Тонкий клиент: добавлено -b /etc, без этого будет Ошибка сегментирования. Предположительно, права доступа к домашнему каталогу пользователя.) |
Pauli (обсуждение | вклад) (→Толстый клиент: Добавлено -b /etc) |
||
Строка 8: | Строка 8: | ||
== Толстый клиент == | == Толстый клиент == | ||
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 | |||
{{Note|В консоли никаких предупреждений быть не должно. В случае появления - разбираться. }} | |||
{{Note|В | |||
= Автономный сервер = | = Автономный сервер = | ||
== Автономный сервер с файловой базой данных== | == Автономный сервер с файловой базой данных== |
Версия от 08:01, 5 июля 2022
![]() |
Этот участник состоит в 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/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/x86_64/8.3.18.1741/1cv8
Автономный сервер
Автономный сервер с файловой базой данных
Работает. Пример запуска:
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 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. ^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
Проблема: ошибка сегментирования при попытке запуска от обычного пользователя.
Автономный сервер с 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.
Рабочий сервер кластера
Установить и запустить 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
Собственно развертывание:
[x86_64] e801 ~ # apt-get install 1c-preinstall-full libxapps
[x86_64] e801 ~ # ./setup-full-8.3.21.1302-x86_64.run
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
И первый запуск, пока в режиме приложения:
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
srv1cv8.service
[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 -- \
/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. ~
Сервер лицензирования
[x86_64] e801 ~ # apt-get install haspd [x86_64] e801 ~ # service haspd start [x86_64] e801 ~ # /usr/sbin/usbkeytest --detect aladdin