При развертывании сервера 1С:Предприятие на операционных системах семейства Linux (CentOS, Debian, Ubuntu, РЕД ОС, Alt Linux и др.) системные администраторы часто сталкиваются с отсутствием привычного графического интерфейса оснастки администрирования кластера, доступного в Windows. Одной из ключевых задач при настройке веб-клиентов или тонких клиентов является включение параметра «Разрешить выдачу лицензий сервером 1С» (параметр license-distribution).
В этой статье мы подробно разберем, как с помощью консольных утилит ras и rac правильно настроить раздачу лицензий сервером 1С на Linux, а также проанализируем распространенные подводные камни, из-за которых лицензии могут не выдаваться даже после включения нужной опции.
Проанализируем, как устроено управление кластером серверов 1С в консольном режиме:
1545) и взаимодействует непосредственно с менеджером кластера rmngr (по умолчанию порт 1541).ras.Для выполнения любых операций настройки нам потребуется рабочая связка ras и rac.
Выясним, запущен ли демон ras на нашем Linux-сервере. Для ручного запуска сервера администрирования в фоновом режиме вызовем следующую команду:
/opt/1C/v8.3/x86_64/ras cluster --daemon --port=1545 127.0.0.1:1541
Разберем параметры этой команды:
--daemon — запуск процесса в режиме службы (в фоновом режиме);--port=1545 — сетевой порт, на котором RAS будет принимать команды от RAC;127.0.0.1:1541 — адрес и порт кластера серверов 1С.Управление свойствами информационных баз в утилите rac выполняется не по имени базы, а по их уникальным идентификаторам (UUID). Выполним последовательный поиск необходимых UUID.
Сначала получим список кластеров серверов:
/opt/1C/v8.3/x86_64/rac cluster list
В ответ консоль вернет информацию о кластерах. Найдем строку с идентификатором кластера:
cluster : 4ecc928c-11ac-11e8-6782-5254009d534e
host : linux-1c-server
port : 1541
name : "Локальный кластер"
Сохраним значение `cluster` (в нашем примере: 4ecc928c-11ac-11e8-6782-5254009d534e).
Теперь выведем краткий список всех информационных баз, зарегистрированных в данном кластере:
/opt/1C/v8.3/x86_64/rac infobase --cluster=4ecc928c-11ac-11e8-6782-5254009d534e summary list
Найдем в списке нужную базу по её имени (параметр name) и скопируем её идентификатор infobase (например: 3df78220-1498-11e8-6981-5254009d534e).
Посмотрим подробные свойства целевой информационной базы, чтобы убедиться в текущем статусе раздачи лицензий:
/opt/1C/v8.3/x86_64/rac infobase --cluster=4ecc928c-11ac-11e8-6782-5254009d534e info --infobase=3df78220-1498-11e8-6981-5254009d534e --infobase-user='' --infobase-pwd=''
Важный момент: если в информационной базе уже созданы пользователи с административными правами, параметры --infobase-user и --infobase-pwd должны содержать логин и пароль администратора 1С. Если пользователей в базе нет, передаются пустые строки ''.
В выводе команды проанализируем строчку:
license-distribution : deny
Значение deny указывает на то, что выдача лицензий сервером 1С для данной информационной базы запрещена.
Для разрешения выдачи лицензий выполним команду обновления параметров информационной базы rac infobase update, передав флаг --license-distribution=allow:
/opt/1C/v8.3/x86_64/rac infobase update \
--cluster=4ecc928c-11ac-11e8-6782-5254009d534e \
--infobase=3df78220-1498-11e8-6981-5254009d534e \
--infobase-user='Администратор' \
--infobase-pwd='ПарольАдминистратора' \
--license-distribution=allow
Если нам требуется включить эту опцию сразу при создании новой информационной базы через консоль, укажем параметр --license-distribution=allow в команде create:
/opt/1C/v8.3/x86_64/rac infobase create \
--cluster=4ecc928c-11ac-11e8-6782-5254009d534e \
--create-database \
--name=baza_work \
--dbms=PostgreSQL \
--db-server=localhost \
--db-name=baza_work \
--locale=ru \
--db-user=postgres \
--db-pwd='password' \
--license-distribution=allow
Повторно запросим информацию о базе через rac infobase info. Убедимся, что параметр изменился:
license-distribution : allow
Рассмотрим ситуацию: параметр license-distribution установлен в значение allow, однако при подключении тонкого или веб-клиента система по-прежнему выдает ошибку о нехватке лицензий. Поясним причину этого поведения.
Флаг «Разрешить выдачу лицензий сервером 1С» — это лишь разрешение серверу делиться имеющимися у него лицензиями с подключающимися клиентами. Сам по себе этот параметр не создает лицензии из воздуха.
Если сервер 1С работает на Linux, для успешной выдачи лицензий клиентам необходимо проверить следующие условия:
Файлы программных лицензий должны физически находиться в каталоге, доступном процессу 1С. В Linux стандартный путь хранения лицензий кластера:
/var/1C/licenses/ или /var/1c/v8/licenses/
Убедимся, что владельцем этих файлов и папок является пользователь, от имени которого запущен сервис 1С (обычно usr1cv8):
chown -R usr1cv8:grp1cv8 /var/1C/licenses/
chmod -R 755 /var/1C/licenses/
Если используется аппаратный защитный ключ HASP, на Linux-сервере должна быть установлена и запущен защтный сервис-драйвер (например, haspd или aksusbd). Без запущенной службы менеджер лицензий 1С не сможет извлечь ключи из USB-порта.
При публикации базы на веб-сервере файл конфигурации сетевых ключей nethasp.ini должен быть настроен на стороне самого сервера приложений 1С, а не на промежуточном веб-сервере, если выдача лицензий возложена на кластер 1С.
Если постоянная работа с консольной утилитой rac вызывает сложности, разберем более удобный вариант администрирования:
ras на Linux-сервере на порту 1545.ras.msc) на Windows.1545.Это позволит управлять свойствами баз Linux-кластера (включая флаг выдачи лицензий) через стандартный и привычный графический интерфейс.
Мы проанализировали процесс настройки выдачи лицензий сервером 1С на ОС Linux. Для успешной работы веб- и тонких клиентов необходимо пройти два обязательных этапа: установить свойство --license-distribution=allow через утилиту rac и убедиться, что на сервере приложения физически активированы программные лицензии с правильными правами доступа usr1cv8 или запущен драйвер ключей защиты HASP.