При администрировании серверов на базе операционной системы Linux системные администраторы часто сталкиваются с необходимостью развертывания платформы 1С:Предприятие в «безголовом» режиме (headless) — то есть на сервере, где полностью отсутствует графическая оболочка (GUI), а управление осуществляется исключительно через консоль SSH. Начиная с версии платформы 8.3.14, компания 1С ужесточила требования к лицензированию: теперь без активированной лицензии на сервер невозможно выполнять его администрирование (создавать базы данных, управлять сеансами и т.д.), даже если сам сервер запускается и работает.
В этой статье мы подробно разберем, как решить проблему активации серверной лицензии 1С на операционной системе Linux (на примере Debian/Ubuntu и CentOS/RedHat) в условиях полного отсутствия графического интерфейса. Мы рассмотрим три наиболее надежных способа активации, а также разберем процесс настройки удаленного администрирования сервера.
Для управления лицензиями из командной строки фирма 1С поставляет специализированную утилиту ring (модуль license). Этот инструмент позволяет активировать программные лицензии без запуска графического Конфигуратора.
Перед тем как приступить к работе с утилитой ring, необходимо подготовить окружение операционной системы. Разберем по шагам предварительные требования:
ring написана на Java, поэтому на сервере должна быть установлена среда выполнения Java версии 8 или выше. Для установки JRE в Debian/Ubuntu выполним команду:
apt-get update
apt-get install default-jre
yum install java-1.8.0-openjdk
apt-get install gawk
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, указав в нем предыдущий использованный пинкод.
Сценарий Б. Автономная (офлайн) активация
Если сервер находится в закрытом контуре безопасности без доступа к интернету, процедура усложняется, но остается выполнимой. Рассмотрим ее по шагам:
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
/tmp/request.txt необходимо скопировать на любой компьютер, имеющий доступ в интернет. Далее следует перейти на сайт Центра лицензирования 1С, загрузить этот файл и получить взамен файл ответа (например, response.txt).
ring license acquire \
--request /tmp/request.txt \
--response /tmp/response.txt
После выполнения этих команд программная лицензия будет успешно сохранена в локальном хранилище и сервер станет доступен для полноценной работы.
Если использование консольной утилиты кажется слишком сложным или неудобным, мы можем задействовать стандартный графический Конфигуратор 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
После настройки прав разберем алгоритм действий на клиентском компьютере:
1540).Если права на сервере были настроены верно, Конфигуратор успешно свяжется с сервером по сети, получит лицензию из центра лицензирования и сохранит готовый файл лицензии непосредственно в каталог /var/1C/licenses на Linux-сервере.
Рассмотрим специфическую ситуацию: вам требуется активировать на Linux-сервере бесплатную лицензию разработчика (комьюнити-лицензию). Особенность этой лицензии заключается в том, что утилита ring не поддерживает ее активацию. В то же время на сервере по-прежнему нет графического интерфейса. Для автоматизации этого процесса подойдут инструменты для установки и продления комьюнити-лицензии на сервере 1С без GUI.
Решить эту проблему можно с помощью виртуального X-сервера Xvfb (X Virtual Framebuffer). Эта программа позволяет создать в оперативной памяти виртуальный дисплей, имитирующий полноценный монитор для запуска графических приложений.
Разберем по шагам этот обходной путь:
Xvfb на нашем сервере без GUI.
Для Debian/Ubuntu:
apt-get install xvfb
Для CentOS/RHEL:
yum install xorg-x11-server-Xvfb
:99:
Xvfb :99 -screen 0 1024x768x24 &
export DISPLAY=:99
/opt/1cv8/x86_64/current/1cv8c
После успешной активации лицензии одним из описанных выше способов перед нами встает задача непосредственного администрирования баз данных и рабочих процессов. Поскольку графической утилиты администрирования на сервере нет, выясним, как правильно управлять кластером 1С удаленно. Для упрощения технического обслуживания, автоматизации резервного копирования и пакетного тестирования баз в фоновом режиме настраивают автоматическое обновление и архивирование баз 1С по расписанию.
Для этого в платформе 1С предусмотрена связка из сервера администрирования ras и консольного клиента rac. Разберем схему их работы:
ras. Сделать это можно, запустив службу в режиме демона:
/opt/1cv8/x86_64/8.3.16.1000/ras --daemon
Или настроив автозапуск службы через systemd (в современных дистрибутивах для этого поставляется готовый юнит-файл rasd.service). По умолчанию служба начинает прослушивать порт 1545.
rac, которая идет в комплекте с платформой. Мы можем делать это как локально на сервере, так и удаленно с любого компьютера администратора:
rac connection register --host=localhost --port=1545
rac кажется слишком громоздким, то при запущенной службе ras на Linux-сервере мы можем использовать стандартную Windows-консоль «Администрирование серверов 1С:Предприятия» (MMC-консоль) или современную кроссплатформенную утилиту администрирования на базе Eclipse. Достаточно в свойствах подключения указать IP-адрес нашего Linux-сервера и порт службы ras (1545), после чего управлять базами данных в привычном визуальном стиле.Мы подробно проанализировали все доступные варианты активации сервера 1С на Linux-системах без графического интерфейса. Использование официальной утилиты ring является наиболее надежным и рекомендуемым решением для коммерческих лицензий, в то время как удаленная активация через клиентский Конфигуратор или эмуляция графического экрана с помощью Xvfb станут отличными альтернативными инструментами в различных инфраструктурных сценариях.