Как разрешить выдачу лицензий сервером 1С:Предприятие на ОС Linux через утилиту RAC

Системный администратор 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При развертывании сервера 1С:Предприятие на операционных системах семейства Linux (CentOS, Debian, Ubuntu, РЕД ОС, Alt Linux и др.) системные администраторы часто сталкиваются с отсутствием привычного графического интерфейса оснастки администрирования кластера, доступного в Windows. Одной из ключевых задач при настройке веб-клиентов или тонких клиентов является включение параметра «Разрешить выдачу лицензий сервером 1С» (параметр license-distribution).

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

Понимание архитектуры управления кластером 1С в Linux

Проанализируем, как устроено управление кластером серверов 1С в консольном режиме:

  1. RAS (Remote Administration Server) — служба удаленного администрирования кластера. Она принимает команды по сетевому протоколу (по умолчанию порт 1545) и взаимодействует непосредственно с менеджером кластера rmngr (по умолчанию порт 1541).
  2. RAC (Remote Administration Console) — утилита командной строки, которая отправляет инструкции службе ras.

Для выполнения любых операций настройки нам потребуется рабочая связка ras и rac.

Шаг 1. Запуск службы администрирования RAS

Выясним, запущен ли демон ras на нашем Linux-сервере. Для ручного запуска сервера администрирования в фоновом режиме вызовем следующую команду:

/opt/1C/v8.3/x86_64/ras cluster --daemon --port=1545 127.0.0.1:1541

Разберем параметры этой команды:

Шаг 2. Получение идентификаторов кластера и информационной базы

Управление свойствами информационных баз в утилите 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).

Шаг 3. Проверка текущего состояния опции license-distribution

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


/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С для данной информационной базы запрещена.

Шаг 4. Изменение свойства license-distribution на allow

Для разрешения выдачи лицензий выполним команду обновления параметров информационной базы 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

Шаг 5. Почему лицензии всё равно не выдаются? Разбор частой ошибки

Рассмотрим ситуацию: параметр license-distribution установлен в значение allow, однако при подключении тонкого или веб-клиента система по-прежнему выдает ошибку о нехватке лицензий. Поясним причину этого поведения.

Флаг «Разрешить выдачу лицензий сервером 1С» — это лишь разрешение серверу делиться имеющимися у него лицензиями с подключающимися клиентами. Сам по себе этот параметр не создает лицензии из воздуха.

Если сервер 1С работает на Linux, для успешной выдачи лицензий клиентам необходимо проверить следующие условия:

  1. Установка программных лицензий (.lic):

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

    /var/1C/licenses/ или /var/1c/v8/licenses/

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

    
    chown -R usr1cv8:grp1cv8 /var/1C/licenses/
    chmod -R 755 /var/1C/licenses/
    
  2. Использование аппаратных USB-ключей (HASP):

    Если используется аппаратный защитный ключ HASP, на Linux-сервере должна быть установлена и запущен защтный сервис-драйвер (например, haspd или aksusbd). Без запущенной службы менеджер лицензий 1С не сможет извлечь ключи из USB-порта.

  3. Настройка взаимодействия с веб-сервером (Apache/Nginx):

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

Альтернативный способ: графическое администрирование Linux-сервера через Windows

Если постоянная работа с консольной утилитой rac вызывает сложности, разберем более удобный вариант администрирования:

  1. Запустим службу ras на Linux-сервере на порту 1545.
  2. На любой рабочей станции с Windows установим компонент «Утилиты администрирования кластера серверов 1С».
  3. Откроем стандартную оснастку MMC (ras.msc) на Windows.
  4. При добавлении кластера укажем IP-адрес или имя нашего Linux-сервера и порт 1545.

Это позволит управлять свойствами баз Linux-кластера (включая флаг выдачи лицензий) через стандартный и привычный графический интерфейс.

Резюме

Мы проанализировали процесс настройки выдачи лицензий сервером 1С на ОС Linux. Для успешной работы веб- и тонких клиентов необходимо пройти два обязательных этапа: установить свойство --license-distribution=allow через утилиту rac и убедиться, что на сервере приложения физически активированы программные лицензии с правильными правами доступа usr1cv8 или запущен драйвер ключей защиты HASP.

← На главную