Как активировать сервер 1С:Предприятие на Linux без графической оболочки?

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

При администрировании серверов на базе операционной системы Linux системные администраторы часто сталкиваются с необходимостью развертывания платформы 1С:Предприятие в «безголовом» режиме (headless) — то есть на сервере, где полностью отсутствует графическая оболочка (GUI), а управление осуществляется исключительно через консоль SSH. Начиная с версии платформы 8.3.14, компания 1С ужесточила требования к лицензированию: теперь без активированной лицензии на сервер невозможно выполнять его администрирование (создавать базы данных, управлять сеансами и т.д.), даже если сам сервер запускается и работает.

В этой статье мы подробно разберем, как решить проблему активации серверной лицензии 1С на операционной системе Linux (на примере Debian/Ubuntu и CentOS/RedHat) в условиях полного отсутствия графического интерфейса. Мы рассмотрим три наиболее надежных способа активации, а также разберем процесс настройки удаленного администрирования сервера.

Способ 1. Активация с помощью консольной утилиты ring

Для управления лицензиями из командной строки фирма 1С поставляет специализированную утилиту ring (модуль license). Этот инструмент позволяет активировать программные лицензии без запуска графического Конфигуратора.

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

  1. Установка Java Runtime Environment (JRE): Утилита ring написана на Java, поэтому на сервере должна быть установлена среда выполнения Java версии 8 или выше. Для установки JRE в Debian/Ubuntu выполним команду:
    
    apt-get update
    apt-get install default-jre
    
    Для CentOS/RHEL команда будет выглядеть так: yum install java-1.8.0-openjdk
  2. Установка gawk: Также для корректной работы утилиты потребуется пакет GNU Awk. Установим его: apt-get install gawk
  3. Установка самой утилиты: Дистрибутив утилиты поставляется вместе с платформой 1С и находится в каталоге license-tools. Перейдем в этот каталог и запустим консольный установщик: ./1ce-installer-cli

После успешной установки утилита ring будет доступна для работы. Проанализируем два сценария активации: когда сервер имеет прямой доступ к интернету и когда сервер изолирован от внешней сети.

Сценарий А. Онлайн-активация (при наличии интернета на сервере)

Если сервер 1С имеет прямой доступ к серверам центра лицензирования 1С, процесс активации выполняется одной командой в консоли. Нам понадобятся: регистрационный номер лицензии, пинкод активации и полные сведения об организации. Пример команды для активации:


ring license activate \
  --serial 8100001234 \
  --pin 111-222-333-444-555 \
  --company "ООО Рога и Копыта" \
  --country "Россия" \
  --town "Москва" \
  --street "ул. Ленина" \
  --house "10" \
  --email "admin@roga-i-kopyta.ru" \
  --send-statistics false

Если это повторная активация (например, при изменении параметров компьютера), в команду необходимо добавить параметр --previous-pin, указав в нем предыдущий использованный пинкод.

Сценарий Б. Автономная (офлайн) активация

Если сервер находится в закрытом контуре безопасности без доступа к интернету, процедура усложняется, но остается выполнимой. Рассмотрим ее по шагам:

  1. Сначала сформируем файл запроса лицензии на сервере:
    
    ring license prepare-request \
      --serial 8100001234 \
      --pin 111-222-333-444-555 \
      --company "ООО Рога и Копыта" \
      --country "Россия" \
      --town "Москва" \
      --street "ул. Ленина" \
      --house "10" \
      --email "admin@roga-i-kopyta.ru" \
      --request /tmp/request.txt
    
  2. Полученный файл /tmp/request.txt необходимо скопировать на любой компьютер, имеющий доступ в интернет. Далее следует перейти на сайт Центра лицензирования 1С, загрузить этот файл и получить взамен файл ответа (например, response.txt).
  3. Перенесем файл ответа обратно на наш Linux-сервер и применим его для окончательной активации лицензии:
    
    ring license acquire \
      --request /tmp/request.txt \
      --response /tmp/response.txt
    

После выполнения этих команд программная лицензия будет успешно сохранена в локальном хранилище и сервер станет доступен для полноценной работы.

Способ 2. Активация с клиентского рабочего места (через Конфигуратор)

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

По умолчанию файлы лицензий 1С на Linux сохраняются в каталог /var/1C/licenses. Программа 1С на сервере работает от имени системного пользователя usr1cv8. Чтобы Конфигуратор с удаленного компьютера смог записать файл лицензии на сервер, у этого пользователя должны быть полные права на указанную директорию.

Выполним предварительную настройку прав на Linux-сервере:


mkdir -p /var/1C/licenses
chown -R usr1cv8:grp1cv8 /var/1C/licenses
chmod -R 775 /var/1C/licenses

После настройки прав разберем алгоритм действий на клиентском компьютере:

  1. Запускаем платформу 1С:Предприятие на рабочем месте под управлением Windows и открываем Конфигуратор любой базы данных, расположенной на целевом Linux-сервере.
  2. При возникновении окна с требованием лицензии (или принудительно через меню Сервис — Получение лицензии) выбираем вариант получения лицензии.
  3. В процессе заполнения данных на одном из шагов помощник запросит способ установки. Критически важно выбрать опцию «Установка на сервер».
  4. Указываем сетевой адрес нашего Linux-сервера и порт кластера (по умолчанию используется порт 1540).
  5. Вводим регистрационный номер комплекта, пинкод, заполняем сведения о владельце лицензии и завершаем процесс активации.

Если права на сервере были настроены верно, Конфигуратор успешно свяжется с сервером по сети, получит лицензию из центра лицензирования и сохранит готовый файл лицензии непосредственно в каталог /var/1C/licenses на Linux-сервере.

Способ 3. Эмуляция графического окружения для комьюнити-лицензий

Рассмотрим специфическую ситуацию: вам требуется активировать на Linux-сервере бесплатную лицензию разработчика (комьюнити-лицензию). Особенность этой лицензии заключается в том, что утилита ring не поддерживает ее активацию. В то же время на сервере по-прежнему нет графического интерфейса. Для автоматизации этого процесса подойдут инструменты для установки и продления комьюнити-лицензии на сервере 1С без GUI.

Решить эту проблему можно с помощью виртуального X-сервера Xvfb (X Virtual Framebuffer). Эта программа позволяет создать в оперативной памяти виртуальный дисплей, имитирующий полноценный монитор для запуска графических приложений.

Разберем по шагам этот обходной путь:

  1. Установим пакет Xvfb на нашем сервере без GUI.

    Для Debian/Ubuntu:

    apt-get install xvfb

    Для CentOS/RHEL:

    yum install xorg-x11-server-Xvfb
  2. Запустим виртуальный дисплей в фоновом режиме. Выделим под него дисплей с номером :99: Xvfb :99 -screen 0 1024x768x24 &
  3. Зададим переменную окружения, чтобы все графические приложения перенаправляли свой вывод на наш виртуальный дисплей: export DISPLAY=:99
  4. Теперь мы можем запустить тонкий или толстый клиент 1С в режиме Конфигуратора прямо из консоли. Программа «подумает», что она запущена в графической оболочке, выполнит инициализацию виртуального экрана и позволит пройти шаг авторизации и активации лицензии разработчика в фоновом режиме: /opt/1cv8/x86_64/current/1cv8c

Как администрировать сервер 1С на Linux без графики?

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

Для этого в платформе 1С предусмотрена связка из сервера администрирования ras и консольного клиента rac. Разберем схему их работы:

  1. На Linux-сервере необходимо запустить службу удаленного администрирования ras. Сделать это можно, запустив службу в режиме демона: /opt/1cv8/x86_64/8.3.16.1000/ras --daemon Или настроив автозапуск службы через systemd (в современных дистрибутивах для этого поставляется готовый юнит-файл rasd.service). По умолчанию служба начинает прослушивать порт 1545.
  2. Теперь мы можем полноценно управлять кластером с помощью консольной утилиты rac, которая идет в комплекте с платформой. Мы можем делать это как локально на сервере, так и удаленно с любого компьютера администратора: rac connection register --host=localhost --port=1545
  3. Если консольный интерфейс утилиты rac кажется слишком громоздким, то при запущенной службе ras на Linux-сервере мы можем использовать стандартную Windows-консоль «Администрирование серверов 1С:Предприятия» (MMC-консоль) или современную кроссплатформенную утилиту администрирования на базе Eclipse. Достаточно в свойствах подключения указать IP-адрес нашего Linux-сервера и порт службы ras (1545), после чего управлять базами данных в привычном визуальном стиле.

Мы подробно проанализировали все доступные варианты активации сервера 1С на Linux-системах без графического интерфейса. Использование официальной утилиты ring является наиболее надежным и рекомендуемым решением для коммерческих лицензий, в то время как удаленная активация через клиентский Конфигуратор или эмуляция графического экрана с помощью Xvfb станут отличными альтернативными инструментами в различных инфраструктурных сценариях.

← На главную