Устанавливаем и настраиваем ПУСК - Панель Управления Сервисами и Компонентами для 1С:Предприятие

  • Автор:

1с-PUSK-000.pngДля администрирования серверов 1С:Предприятие традиционно используется одноименная MMC-оснастка, что достаточно неудобно по многим причинам, которых мы коснемся ниже. Альтернативой является использование сервера администрирования RAS, недостатком которого является отсутствие графической оболочки. Поэтому многие сторонние разработчики представили собственные решения работающие на базе RAS, одно из них ПУСК - серьезный продукт, существующий уже несколько лет и включенный в реестр отечественного ПО.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Перед тем, как переходить к основной теме данной статьи рассмотрим штатные инструменты с их плюсами и минусами. Начнем с MMC-оснастки Администрирование серверов 1С Предприятия, уже сам факт использования MMC указывает на то, что это продукт исключительно для платформы Windows, а если учесть, что под капотом используются COM-соединения, то перспектив увидеть кроссплатформенное решение здесь нет. Также Поэтому для оснастки мы выделим два основных минуса:

  • Работает только под Windows
  • Работает только с одной версией платформы одновременно

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

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

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

Все это учли разработчики компании ИТ-Экспертиза и создали веб-приложение, работающее через сервер администрирования RAS и предоставляющий администратору практически все возможности стандартной оснастки с максимально повторяющим оригинальный инструмент поведением. Проект развивается с 2022 года и в настоящий момент включен в реестр отечественного ПО.

В чем плюсы такого решения? Это удобно, кроссплатформенно, может быть использовано в рамках импортозамещения. А формат веб-приложения позволяет работать с продуктом из любого места и любой платформы, был бы браузер.

Мы будем устанавливать ПУСК на выделенный виртуальный сервер под управлением DEB-based дистрибутивов, в нашем случае это будет Ubuntu 24.04 LTS, но вы можете использовать любой актуальный дистрибутив на базе Debian. Все приведенные ниже команды должны запускаться от имени суперпользователя root или через sudo, если не указано иного.

Установка Java JDK

Для нормальной работы ПУСК нам понадобится виртуальная машина JAVA версии не ниже 17 и здесь у нас есть несколько вариантов ее получения. В данном случае мы будем устанавливать именно версию 17.

Начнем с оригинальной версии Java от Oracle, ее можно скачать со следующей страницы:

JDK Development Kit 17.0.14 downloads

Для скачивания данного продукта вам понадобится зарубежный IP-адрес и учетная запись Oracle, других ограничений нет, с указанной страницы скачиваем DEB-пакет, на момент написания статьи это был jdk-17.0.14_linux-x64_bin.deb.

Следующий вариант, который мы использовали, это Liberica JDK, которую долгое время использовало и продолжает использовать сама фирма 1С. Скачать нужную версию Java можно отсюда:

Download Liberica JDK

Никаких ограничений на данной странице нет, просто качаем DEB-пакет нужной версии под Linux.

И наконец тем, кому нужен продукт из реестра отечественного ПО или желающим использовать только отечественные продукты следует обратить внимание на Axiom JDK, продукт Axiom Standard JDK бесплатен, однако предоставляется по запросу, получить его можно на официальном сайте:

Axiom JDK 17.0.14+10, LTS, Latest

Здесь нас также интересует DEB-пакет.

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

sudo -s 

В Debian

su -

Затем перейдем в домашнюю директорию и установим пакет:

cd ~
apt install ./jdk-17.0.14_linux-x64_bin.deb

Обратите внимание, что в последней команде используется имя скачанного пакета и в вашем случае оно может быть иным.

На этом установка Java JDK окончена.

Установка ПУСК

Прежде всего скачаем последний актуальны пакет ПУСК со страницы:

Панель Управления Сервисами и Компонентами (ПУСК)

На момент написания статьи это версия 1.1.62 от 22.08.2024.

Затем нам понадобится набор Java-библиотек для работы с RAS, которые можно получить здесь:

Программный Java-интерфейс для административного сервера

Вам следует скачать java-api для версий платформы 8.3.11 и старше.

Оба архива также следует передать на сервер в домашнюю папку пользователя.

Установку начнем с распаковки архива с самим ПУСК, сам продукт будет размещаться в /opt, поэтому выполним:

cd ~
tar -xzvf ite-pusk-1.1.62.tar.gz -C /opt

Теперь займемся java-библиотеками от 1С, разработчики зачем-то запаковали их в несколько вложенных архивов, поэтому придется поработать:

unzip java-api-8.3.11.zip
cd java-api-8.3.11/
unzip java-api-1.6.7.zip
cd java-api-1.6.7/
unzip com._1c.v8.ibis.admin-1.6.7.zip
cd com._1c.v8.ibis.admin-1.6.7/
cp -r lib /opt/pusk

Последняя команда скопирует нужные библиотеки в директорию установки ПУСК.

После чего перейдем в каталог ПУСК и выполним его установку:

cd /opt/pusk/
./ite-pusk-linux.sh install

Теперь пробуем запустить панель:

systemctl start ite-pusk

После чего набираем в браузере адрес сервера и порт 8080, в нашем случае это 192.168.72.99:8080 и убеждаемся что веб-панель загрузилась. Убедившись в этом можно добавить сервис в автозагрузку:

systemctl enable ite-pusk

На этом установка панели управления ПУСК закончена, но прежде чем подключать к ней сервера 1С нужно выполнить некоторые подготовительные действия на их стороне.

Установка сервера администрирования 1С в виде службы на платформе Windows

Чтобы управлять сервером на базе Windows нам потребуется установить и запустить на нем сервер администрирования RAS, для этого воспользуемся BAT-файлом install_ras.cmd, в который внесем следующее содержимое:

@echo off
rem %1 - полный номер версии 1С:Предприятия
rem %2 - имя сервера (с портом агента 1540)
rem %3 - порт RAS (1545)
chcp 1251
set SrvUserName=LocalSystem
set SrvUserPwd=""
set Agent=%2
set RASPort=%3
set SrvcName="ras %Agent%"
set BinPath="\"C:\Program Files\1cv8\%1\bin\ras.exe\" cluster --service --port=%RASPort% %Agent%"
set Description="1C:8.3 RAS %1 %Agent%"
sc stop %SrvcName%
sc delete %SrvcName%
sc create %SrvcName% binPath= %BinPath% start= auto obj= %SrvUserName% password= %SrvUserPwd% displayname= %Description% depend= Dnscache/Tcpip/lanmanworkstation/lanmanserver

После чего запустим командную строку от имени администратора и выполним:

install_ras.cmd 8.3.25.1501 localhost:1540 1545

Также не забудьте разрешить входящие подключения на порт TCP 1545 в брандмауэре.

Чтобы удалить регистрацию службы RAS создайте еще один пакетный файл uninstall_ras.cmd с содержимым:

@echo off
rem %1 -имя сервера (с портом агента 1540)
chcp 1251
set Agent=%1
set SrvcName="ras %Agent%"
sc stop %SrvcName%
sc delete %SrvcName%

Для остановки и удаления службы выполните в консоли с правами администратора:

uninstall_ras.cmd localhost:1540

После удаления службы RAS не забудьте перезагрузить сервер.

Установка сервера администрирования 1С в виде службы на платформе Linux

Возможно вы удивитесь, но в Linux все делается гораздо проще. Прежде всего сделаем символическую ссылку на systemd-юнит RAS:

systemctl link /opt/1cv8/x86_64/8.3.25.1501/ras-8.3.25.1501.service

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

systemctl enable --now ras-8.3.25.1501

Для удаления службы выполните:

systemctl disable --now ras-8.3.25.1501

Приведенная выше команда остановит службу и выключит ее из автозагрузки.

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

Подключение серверов 1С:Предприятие в ПУСК

Снова возвращаемся в веб-интерфейс ПУСК, который можно найти по адресу сервера и порту 8080, в нашем случае это 192.168.72.99:8080, после чего переходим в раздел Подключения и нажимаем кнопку Добавить. После чего заполняем поля: Описание - пишем все что угодно, главное, чтобы по нему можно было однозначно понять какой именно сервер перед нами. Ниже в разделе Сервер администрирования 1С (ras) выбираем Уже запущен и указываем адрес нашего сервера 1С:Предприятие. Порт, если вы использовали стандартный 1545 менять не нужно.

1с-PUSK-001.png

Аналогичным образом подключаем остальные сервера. Платформа сервера не имеет значения, главное чтобы на нем была запущена служба RAS.

После добавления сервера мы можем начинать работать с ним. На верхнем уровне нас ждет довольно информативная панель статистики. Мы можем сразу увидеть количество соединений к кластеру по типу клиентов и количество выданных лицензий и их номера. Это очень удобно, особенно если вам нужно быстро оценить текущий расход лицензий в разрезе приобретенных комплектов. В остальном рабочее пространство повторяет собой оснастку MMC как по внешнему виду, так и по поведению (насколько это максимально возможно).

1с-PUSK-002.png

В целом ПУСК производит приятное впечатление и если вы привыкли работать со стандартной оснасткой, то без проблем освоите и новый инструмент.

Дополнительная SSL и парольная защита

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

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

Но сначала внесем некоторые изменения в работу панели ПУСК, в частности ограничим ее работу только на localhost, для этого перейдем в директорию /opt/pusk/data и скопируем файл примера конфигурации:

cd /opt/pusk/data
cp application.properties.sample application.properties

Затем откроем файл /opt/pusk/data/application.properties и ниже опции:

server.port=${PORT:8080}

Добавим:

server.address=127.0.0.1

Перезапустим панель:

systemctl restart ite-pusk

И убедимся что снаружи она недоступна, но работает на адресе 127.0.0.1, для этого выполните команду:

ss -tpln | grep 8080

Если все сделано правильно, то в выводе вы увидите строку:

LISTEN 0 100 [::ffff:127.0.0.1]:8080 *:* users:(("java",pid=844,fd=18))

Теперь установим веб-сервер Caddy:

apt install caddy

Затем сформируем хеш пароля при помощи команды:

caddy hash-password

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

Так как мы используем SSL шифрование, то правила хорошего тона требуют использования доменного имени, поэтому мы советуем завести на локальном DNS сопоставление локального FQDN адресу сервера, в нашем случае мы выбрали имя pusk.example.com, но на всякий случай сохранили и возможность входа по IP-адресу 192.168.72.99. В качестве имени для входа мы будем использовать имя pusk.

Откроем на редактирование файл /etc/caddy/Caddyfile и приведем его содержимое к следующему виду:

pusk.example.com 192.168.72.99 {
basicauth {
pusk <PASS_HASH>
}
tls internal
file_server
reverse_proxy 127.0.0.1:8080
}

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

Коротко пройдемся по опциям:

  • basicauth - предписывает использовать базовую аутентификацию (Basic Auth), ниже указываем логин - pusk и хеш пароля полученный на предыдущем шаге.

Важно! Начиная с версии Caddy 2.8.0 и новее вместо опции basicauth следует использовать basic_auth

  • tls internal - указывает на использование самоподписанного сертификата
  • reverse_proxy 127.0.0.1:8080 - указываем адрес службы, на которую мы проксируем запросы, в нашем случае это запущенная панель ПУСК

Сохраняем конфигурацию и перезапускаем веб-сервер:

systemctl reload caddy

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

Известные проблемы

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

1с-PUSK-003.pngПри этом во всех современных релизах конфигураций включена блокировка по ошибочному вводу учетных данных, по умолчанию допускается три попытки ввода и блокировка на 5 минут. Таким образом, если у вас в кластере есть базы с одинаковым именем административного пользователя, обычно Администратор и разными паролями, то после входа в одну из них остальные окажутся перманентно заблокированными. Данная ошибка была выявлена еще на этапе бета-тестирования в 2022 году, но, к сожалению, до сих пор не исправлена.

Какие обходные пути у этой проблемы? Их несколько:

  • Установить одинаковые пароли для административной учетной записи во всех базах
  • Переименовать административную учетную запись в каждой базе с использованием уникального имени
  • Выключить контроль попыток ввода пароля

Чтобы реализовать последний сценарий откройте информационную базу в разделе Администрирование - Настройки пользователей и прав, затем перейдите в Настройки входа и на закладке Дополнительные снимите флаг Количество попыток ввода пароля до блокировки. В более старых релизах снять этот флаг не представляется возможным, в этом случае укажите количество попыток равными нулю.

1с-PUSK-004.png

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

И все таки, не смотря на некоторые недостатки, ПУСК остается удобным инструментом для консолидированного управления вашими серверами 1С:Предприятие из единого места и с использованием любой платформы.

Онлайн-курс по устройству компьютерных сетей
На углубленном курсе "Архитектура современных компьютерных сетей" вы с нуля научитесь работать с Wireshark и «под микроскопом» изучите работу сетевых протоколов. На протяжении курса надо будет выполнить более пятидесяти лабораторных работ в Wireshark.

Дополнительные материалы:


  1. Настраиваем веб-доступ для 1С:Предприятия в файловом режиме
  2. Настраиваем веб-доступ для 1С:Предприятия в файловом режиме на платформе Linux
  3. Публикация баз данных 1С:Предприятие 8.3 на веб-сервере Apache в Debian или Ubuntu
  4. Защищаем веб-публикацию 1С:Предприятие при помощи SSL и аутентификации по паролю
  5. Публикация баз данных 1С:Предприятие на веб-сервере IIS c защитой SSL и аутентификацией по паролю
  6. Публикация баз данных 1С:Предприятие на веб-сервере Apache в Windows c защитой SSL и аутентификацией по паролю
  7. Настраиваем NGINX как обратный прокси для веб-публикации 1С:Предприятие

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

Поддержи проект!

Или подпишись на наш Телеграм-канал: Подпишись на наш Telegram-канал



Loading Comments