1c сервер ubuntu

Автор George, Окт. 26, 2023, 12:43

« назад - далее »

George

Добрый день! Вообще, я хотел сделать его на CentOS 8\9, но на нее не встал usb redirector, для проброса железных usb ключей. Потому и ubuntu)

Как и с многими другими статьями, это появилась потому, что в интернете статьи не полные, или с ошибками. Так что информацию собирать приходится частями.

Установку ubuntu расписывать не буду, ничего необычного нет. ip естественно статический сразу при установке. Язык - русский!!!

Обновление системы и установка ПО

Для начала повышаем права пользователя:

Код: bash
sudo -s

Обновление зависимостей пакетной базы и репозитория:

Код: bash
apt update

Обновление системы:

Код: bash
apt upgrade -y

Для работы нам потребуется, net-tools, mc, wget:

Код: bash
apt install -y net-tools mc wget
Я последнее время не использую mc, а там как хотите

Установка USB Redirect

Код: bash
sudo apt-get install make gcc linux-headers-`uname -r`

Код: bash
wget https://www.incentivespro.com/usb-redirector-linux-x86_64.tar.gz
tar -zxf ./usb-redirector-linux-x86_64.tar.gz
cd ./usb-redirector-linux-x86_64

Дальше можно установить сервер командой
Код: bash
sudo ./installer.sh install-server

но сервер на мне нужен, нам нужен клиент
Код: bash
sudo ./installer.sh install-client

Еще есть команда
Код: bash
sudo ./installer.sh install
которая установт и сервер и клиент, но это для общей информации, нам нужен только клиент.

Настройка клиента


Код: bash
usbclnt -addserver **.**.**.**:32032

Где вместо **.**.**.** нужно указать ip–адрес сервера.

Теперь можно посмотреть список доступных устройств:

Код: bash
usbclnt -list

видим список с номерами портов, и подключаем устройства

Код: bash
usbclnt -connect 1-1


Включаем автоматическое соединение с устройством:

Код: bash
usbclnt -autoconnecton 1-1


Проверяем:

Код: bash
usbclnt -list

Установка 1С

Подготовительные мероприятия по установке дополнительных компонентов.

Установим libenchant1c2a, без этого компонента 1с не установится.

добавим репозиторий universe:

Код: bash
vi /etc/apt/sources.list
[insert]
Код: bash
deb http://cz.archive.ubuntu.com/ubuntu focal main universe

:wq [enter]

Обновление зависимостей пакетной базы и репозитория:

Код: bash
apt update

Установка libenchant1c2a:

Код: bash
apt install libenchant1c2a

Установка набора программ для чтение и редактирования

Код: bash
apt install imagemagick

Установим диспетчер драйверов для ODBC

Код: bash
apt install unixodbc

Установим libgsf-1-114

Код: bash
apt install libgsf-1-114

Установим шрифты mscorefonts:

Код: bash
apt install ttf-mscorefonts-installer fontconfig

Проверим удачно ли прошла установка шрифтов:

Код: bash
fc-cache -f -v

Для корректной работы сервера 1С на Ubuntu необходимо настроить кодировку локали на ru_RU.UTF-8 UTF-8:

Код: bash
dpkg-reconfigure locales

Выбираем в списке нашу кодировку.

Создаем временную папку под скачиваемые архивы ПО:

Код: bash
mkdir /soft

Переходим в эту папку:

Код: bash
cd /soft

Права на папку:

Код: bash
chmod 777 /soft


Скачиваем дистрибутив с сайта https://releases.1c.ru/ и с помощью winscp копируем на Сервер в папочку soft.

Распаковываем наш архив:

Код: bash
tar -xzvf server64_8_3_23_1912.tar.gz

Устанавливаем необходимые нам пакеты 1С сервера:
Код: bash
./setup-full-8.3.23.1912-x86_64.run --mode unattended --enable-components server,ws,server_admin

Мы устанавливаем кластер серверов 1С, сервер администрирования кластера и модули расширения веб-сервера в пакетном режиме.

    mode unattended - включает пакетный режим
    enable-components - служит для указания компонентов
    additional_admin_functions - установка утилиты административной консоли.
    client_full - установить толстый клиент.
    client_thin - установить тонкий клиент (без возможности работы с файловым вариантом информационной базы).
    client_thin_fib - установить тонкий клиент, который позволяет работать с любым вариантом информационной базы.
    config_storage_server - установить сервер хранилища конфигураций.
    integrity_monitoring - установить утилиту контроля целостности
    liberica_jre - установить Java Runtime Environment (JRE).
    server - установить кластер серверов
    server_admin - установить консоль администрирования кластера серверов.
    ws - требуется установить модули расширения веб-сервера

1C c версии 8.3.21 стала использовать systemd-сценарий запуска кластера серверов и сервера администрирования и находится в папке с платформой:

/opt/1cv8/x86_64/8.3.23.1912/srv1cv8-8.3.23.1912@.service


Установить его можно командой:

Код: bash
systemctl link /opt/1cv8/x86_64/8.3.23.1912/srv1cv8-8.3.23.1912@.service

Запускаем сервер 1С

Код: bash
systemctl start srv1cv8-8.3.23.1912@default.service

Добавляем в автозапуск

Код: bash
systemctl enable srv1cv8-8.3.23.1912@default.service

Проверяем работу сервера 1С:

Код: bash
systemctl status srv1cv8-8.3.23.1912@default.service

Проверяем, слушают ли системные процессы tcp порты:

netstat -tulnp

Сервер 1С успешно установлен и запущен.

Установка HASP

Пробрасываем usb ключ. Любым способом, я через USB Redirect, у меня сервер и клиент в разных местах. И посмотрим определился ли он в системе:

Код: bash
sudo lsusb | grep -i hasp

У вас будет устройство, где в имени присутствует Alladin или HASP dongle.

Загрузите пакеты вот из этого репозитория:

https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/22.04/

Код: bash
wget https://download.etersoft.ru/pub/Etersoft/HASP/stable/x86_64/Ubuntu/22.04/haspd_8.23-eter3ubuntu_amd64.deb

мне удалось скачать его только через vpn, а затем передать на сервер через winscp

Установим пакет и парочку дополнительных, от которых они зависят:

Код: bash
apt install make libc6-i386

Код: bash
dpkg -i haspd*.deb

Запускаем сервис haspd и проверяем, запустился ли он и слушает tcp порты:

Код: bash
systemctl start haspd

Код: bash
netstat -tulnp | grep hasp

Добавим его в автозагрузку:

Код: bash
systemctl enable haspd

На этом настройка hasp завершена.
Установка PostgreSQL

Есть два варианта где можно взять адаптированный дистрибутив PostgreSQL для 1С:

    1-й вариант скачать с официального сайта 1С https://releases.1c.ru/: https://releases.1c.ru/version_file?nick=AddCompPostgre&ver=14.5-3.1C&path=AddCompPostgre%5c14_5_3_1C%5cpostgresql_14.5_3.1C_amd64_deb.tar.bz2
    2-й вариант скачать с сайта компании PostgresPRO https://1c.postgres.ru/, указав под какую платформу вам нужен и контактные данные. На почту моментально придет письмо с информацией о том как установить

Ниже опишу оба варианта установки:

1-й вариант.

Скачиваем наш архив:

Код: bash
wget https://releases.1c.ru/version_file?nick=AddCompPostgre&ver=14.5-3.1C&path=AddCompPostgre%5c14_5_3_1C%5cpostgresql_14.5_3.1C_amd64_deb.tar.bz2

Распаковываем архив:
Код: bash
tar -zxvf postgresql_14.5_3.1C_amd64_deb.tar.bz2

Устанавливаем пакет:

Код: bash
dpkg -i postgresql*.deb

На моменте распаковки мне выдало ошибку, что нельзя распаковать архив и я сделал вариантом 2

2-й вариант.

Запустите скрипт для добавления ключа репозитория:

Код: bash
wget https://repo.postgrespro.ru/1c-15/keys/pgpro-repo-add.sh
Код: bash
sh pgpro-repo-add.sh

Устанавливаем PostgreSQL:

Код: bash
apt-get install postgrespro-1c-15

По просьбам трудящихся, чтобы вызывать бинарные файлы PostgreSQL без указания пути создадим необходимые символические ссылки:

Код: bash
/opt/pgpro/1c-15/bin/pg-wrapper links update

Стартуем службу:

Код: bash
systemctl start postgrespro-1c-15

Проверяем статус:

Код: bash
systemctl status postgrespro-1c-15

Зададим пароль пользователя postgres:

Код: bash
su postgres

Код: bash
psql -U postgres -c "alter user postgres with password 'Ваш_пароль';"

ALTER ROLE

Выходим:

Код: bash
exit

Установка закончена

Установка pqAdmin

На момент написания статьи, с 15 (установленным 2 способом) psql не работает (не устанавливается)
Но пусть будет, пригодится, когда нибудь доработают))

pgAdmin4 – это веб-консоль администрирования и разработки с открытым исходным кодом для PostgreSQL и связанных с ней систем управления базами данных. Разработан на Python и jQuery, он поддерживает все функции, найденные в PostgreSQL. Можно использовать pgAdmin для разных целей – от написания базовых SQL-запросов до мониторинга ваших баз данных и настройки расширенных архитектур баз данных.

Перед установкой необходимо добавить репозиторий, для этого установим публичный ключ:

Код: bash
wget https://www.pgadmin.org/static/packages_pgadmin_org.pub

Код: bash
apt-key add packages_pgadmin_org.pub

здесь ругается на то, что apt-key is depricated

Добавим в файл pgadmin4.list ссылку на репозиторий:
Код: bash
echo "deb https://ftp.postgresql.org/pub/pgadmin/pgadmin4/apt/$(lsb_release -cs) pgadmin4 main" > /etc/apt/sources.list.d/pgadmin4.list

Обновим список зависимостей и пакетных баз:

Код: bash
apt update

Устанавливаем pgadmin4

Код: bash
apt install pgadmin4

Запустим начальную настройку:

Код: bash
/usr/pgadmin4/bin/setup-web.sh

Система попросит вас указать свой email и пароль для регистрации в системе для входа:

Creating configuration database...

NOTE: Configuring authentication for SERVER mode.

Enter the email address and password to use for the initial pgAdmin user account:

Email address: admin@company.ru

Password:

Retype password:

pgAdmin 4 - Application Initialisation

Creating storage and log directories...

We can now configure the Apache Web server for you. This involves enabling the wsgi module and configuring the pgAdmin 4 application to mount at /pgadmin4. Do you wish to continue (y/n)? y

The Apache web server is running and must be restarted for the pgAdmin 4 installation to complete. Continue (y/n)? y

Apache successfully restarted. You can now start using pgAdmin 4 in web mode at http://127.0.0.1/pgadmin4

Установка завершена и консоль pgadmin доступна по адресу:

http://Адрес сервера/pgadmin4

Установка консоли управления сервером 1С

Для того, чтобы установить консоль администратора необходимо скачать и установить технологическую платформу на windows. При установке выбрать пункт Администрирование сервера:


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



Открывается место расположение файла, выбираем Регистрация утилиты администрирования серверов правой кнопкой Запуск от имени администратора



Подключение и создание баз

Правой кнопкой по Central 1C:Enterprise 8.3 servers создать Центральный сервер, указываем имя сервера и нажимаем ок



Все. Сервер 1с на linux готов к использованию!
  •  

George

Для ускорения работы рекомендуется держать БД на другом диске. (в идеале postgres надо на отдельном сервере)
В CentOS это можно сделать при установке, в ubuntu я поступил следующим образом:

Код: bash
mkdir /postgres

в эту папку монтируем диск (я lvm диски создаю, чтоб если что на лету увеличивать размер диска)

Код: bash
chown postgres:postgres /postgres

Код: bash
systemctl stop postgrespro-1c-15

Код: bash
vi /etc/default/postgrespro-1c-15

в нем меняем строчку
ЦитироватьPGDATA=/var/lib/pgpro/1c-15/data

на

Код: bash
PGDATA=/postgres

Копируем данные из старого расположения в новое:

Код: bash
cp -R /var/lib/pgpro/1c-15/data/* /postgres

Код: bash
chmod 750 /postgres

Код: bash
systemctl start postgrespro-1c-15
  •  

George

Публикация базы 1с на ВЭБ сервере

Я стараюсь не публиковать базы на вэб сервере, но вам продемонстрирую Процедуру. Если вы не установили pgAdmin, то вэб сервер Apache у вас не инсталлирован, исправим это:

Код: bash
apt install apache2

Создаем директорию в корне веб сервера, где будет храниться конфигурация публикуемой базы:

Код: bash
mkdir -p /var/www/Название_базы

Код: bash
chown -R www-data:www-data /var/www/Название_базы

Публикуем базу 1С:

Код: bash
/opt/1cv8/x86_64/8.3.22.1709/webinst -publish -apache24 -wsdir Название_базы -dir /var/www/Название_базы -connstr "Srvr=Имя_сервера;Ref=Название_базы;" -confpath /etc/apache2/apache2.conf

Перезапускаем веб сервер и добавляем в автозагрузку:

Код: bash
systemctl restart apache2

Код: bash
systemctl enable apache2

Открываем в браузере http://ip_адрес/Название_базы/ Вы должны попасть в свою опубликованную базу 1С. Подключаться к ней можно как через браузер, так и платформу. В платформе при добавлении базы надо указать, что она на веб севере и ввести путь к нему.
  •  

George

У нас нет основания сомневаться во встроенном механизме аутентификации 1С:Предприятия, во всяком случае в онлайн-сервисах дополнительной аутентификации не предусмотрено, но есть слабое место - пользователи. Во многих базах могут использоваться простые пароли или не использоваться вообще, часть таких паролей могут использоваться скриптами и средствами автоматизации, поэтому взять и установить сразу всем сложные пароли будет не так-то просто.

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

Следует отметить, что 1С:Предприятите поддерживает только Basic-аутентификацию, которая считается небезопасной, так как передает учетные данные в открытом виде, однако в нашем случае это не имеет значения, так как канал защищен SSL-шифрованием.

Прежде всего создадим файл паролей. Можно использовать один пароль для всех публикаций, либо разные, а также комбинировать этот подход. Например, установим пароль для пользователя user1c:

Код: bash
htpasswd -c /etc/apache2/.htpasswd user1c

Ключ -с создает файл в случае его отсутствия и перезапишет его, если файл существует. Для создания последующих пользователей используйте команду:
Код: bash
htpasswd  /etc/apache2/.htpasswd glbuch

Затем в директории публикации базы, например, /var/www/infobase создадим файл .htaccess:

Код: bash
vi /var/www/infobase/.htaccess

И добавим в него следующие строки:

Код: bash
AuthType Basic
AuthName "Restricted Content"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user

Первая строка включает Basic-аутентификацию, вторая задает наименование области безопасности, можете вписать туда все что угодно. Затем указывается путь к файлу паролей и политика аутентификации, valid-user обозначает что доступ получит любой аутентифицированный пользователь. Если нужно указать конкретные учетные записи, то последнюю строку нужно изменить следующим образом:

Код: bash
Require user user1c glbuch

Сохраняем файл, перезапуск веб-сервера не требуется, настройка начнет действовать сразу для всех новых подключений. Теперь, при попытке доступа к публикации вы увидите следующий запрос:

И только после того, как вы пройдете аутентификацию средствами веб-сервера вам будет предложено войти под своим именем в программу 1С:Предприятие:

Если вы используете для доступа к опубликованным на веб-сервере базам тонкий клиент, то увидите дополнительное окно аутентификации на веб-сервере, настроить запоминание пароля здесь нельзя и это может быть неудобно пользователям.
https://interface31.ru/tech_it/images/1cv83-web-access-ssl-003.png
Чтобы автоматизировать вход и избежать лишних запросов учетных данных можно указать в свойствах информационной базы дополнительные параметры запуска:

/WSN user1c /WSP Pa$$w0rd_1

Где ключ /WSN определяет пользователя веб-сервера, а ключ /WSP - пароль.

Если публикаций несколько, то файл .htaccess следует создать в директории публикации каждой информационной базы, при этом вы можете комбинировать политики доступа, куда-то разрешать доступ всем пользователям, а куда-то только некоторым. При необходимости настройки можно изменять налету, перезапуск веб-сервера не требуется.
  •  

🡱 🡳

Отметьте интересные вам фрагменты текста и они станут доступны по уникальной ссылке в адресной строке браузера.