Рабочее место 1С на Linux через WSL. Часть 4 - Управление кластером без Windows: Сервер администрирования RAS и утилита RAC | infolimp.ru

Рабочее место 1С на Linux через WSL. Часть 4 - Управление кластером без Windows: Сервер администрирования RAS и утилита RAC

6 сентября 2026 · infolimp.ru

В первой лабораторной работе для администрирования и создания информационных баз мы использовали графическую оснастку под Windows. Однако этот подход имеет существенные ограничения: он требует наличия Windows-машины, не поддается автоматизации и неприменим в сценариях построения современных CI/CD конвейеров или автоматического развертывания тестовых сред. В операционной системе Linux (включая работу в WSL) прямое использование COM-объектов Windows для администрирования невозможно. Для решения задач кросс-платформенного администрирования компания 1С предоставляет альтернативный, гораздо более мощный стек инструментов - службу администрирования RAS (Remote Administration Server) и консольную утилиту RAC (Remote Administration Client). В этой работе мы разберем архитектуру бесконсольного администрирования 1С, настроим службу RAS как постоянный демон в Linux, научимся управлять кластером из командной строки и напишем Bash-скрипт для автоматического создания баз в 1С и PostgreSQL.

Теоретическая часть

Архитектура удаленного администрирования 1С:Предприятие Классическая консоль администрирования кластера 1С в Windows представляет собой оснастку MMC (Microsoft Management Console), которая под капотом общается с процессами кластера через COM-интерфейсы. В Linux-системах СОМ-технологии отсутствуют, поэтому архитектура администрирования была переработана на основе сетевого взаимодействия: +------------------------+ | Скрипты / CI-CD / | | Администратор (RAC) | +-----------+------------+

            |

| (Сетевой протокол TCP/IP, порт 1545)

            v
+------------------------+

| Сервер администрирования| | 1С (RAS) | +-----------+------------+

            |

| (Внутренний протокол 1С, порт 1540)

            v
+------------------------+

| Менеджер кластера | | (rmngr) | +------------------------+

  1. Сервер администрирования (RAS): Служит сетевым мостом. Он запускается на стороне сервера Linux, подключается к локальному или удаленному менеджеру кластера (процесс rmngr, по умолчанию слушающий порт 1540) и предоставляет стандартизированный TCP-интерфейс на порту 1545 для внешних подключений.
  2. Клиент администрирования (RAC): Кросс-платформенная консольная утилита командной строки. Она может быть запущена на любой машине (Windows, Linux, macOS), подключается к серверу RAS по порту 1545 и передает команды управления кластером (создание баз, управление сеансами, блокировками и т. д.). Преимущества автоматизации через RAC/RAS

Пошаговая инструкция

Шаг 1. Локализация утилит RAS и RAC в файловой системе Linux

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

ls -l /opt/1cv8/x86_64/8.3.16.1148/ras

(Если вы используете другую версию платформы, скорректируйте путь соответствующим образом).

Шаг 2. Ручной тестовый запуск сервера RAS

Перед тем как регистрировать RAS как службу, проверим её работоспособность в интерактивном режиме.

  1. Запустите RAS, указав ему порт публикации (1545) и адрес менеджера кластера, к которому нужно подключиться (по умолчанию локальный менеджер работает на localhost:1540):
   /opt/1cv8/x86_64/8.3.16.1148/ras cluster --port=1545 localhost:1540
  1. Терминал «зависнет» - это нормально, процесс запущен в фокусе.
  2. Откройте вторую вкладку терминала ConEmu и проверьте, что порт 1545 начал прослушиваться:
   ss -tuln | grep 1545

Вы должны увидеть строку, подтверждающую, что порт открыт.

  1. Вернитесь в первую вкладку и прервите процесс сочетанием клавиш Ctrl + C.

Шаг 3. Регистрация RAS как системной службы в Linux

Запускать RAS вручную неудобно. В Лабораторной работе №2 мы настраивали автозапуск служб. Настроим запуск RAS в качестве демона. Вариант А. Настройка через systemd (для современных дистрибутивов и WSL с поддержкой systemd):

  1. Создайте конфигурационный файл службы:
   sudo nano /etc/systemd/system/ras1cv83.service
  1. Вставьте следующее содержимое:
   [Unit]
   Description=1C:Enterprise Remote Administration Server
   After=network.target srv1cv83.service
   Requires=srv1cv83.service
   [Service]
   Type=simple
   User=usr1cv8
   ExecStart=/opt/1cv8/x86_64/8.3.16.1148/ras cluster --port=1545 localhost:1540
   Restart=always
   RestartSec=5
   [Install]
   WantedBy=multi-user.target
  1. Сохраните файл [Ctrl + O -> Enter] и выйдите [Ctrl + X].
  2. Перезапустите менеджер systemd и активируйте службу:
   sudo systemctl daemon-reload
   sudo systemctl enable ras1cv83.service
   sudo systemctl start ras1cv83.service

Вариант Б. Запуск через SysVinit (если systemd в вашей WSL отключен): Для WSL без systemd мы можем добавить запуск RAS в наш автоматический планировщик Windows, настроенный во второй лабораторной работе:

  1. Разрешите беспарольный запуск RAS. Откройте sudoers через visudo:
sudo visudo
  1. Добавьте строку для вашего пользователя (например, pen):
   pen ALL=(ALL) NOPASSWD: /opt/1cv8/x86_64/8.3.16.1148/ras *
  1. Измените аргументы в созданной ранее задаче Планировщика Windows WSL_1C_Services_AutoStart, добавив команду запуска RAS в фоновом режиме через символ & (амперсанд) или запустив его в качестве демона:
   -u pen sudo service postgresql start && sudo service srv1cv83 start && nohup sudo
/opt/1cv8/x86_64/8.3.16.1148/ras cluster --daemon --port=1545 localhost:1540

Шаг 4. Подключение через RAC и получение UUID кластера

Теперь научимся отправлять команды управления. Все действия выполняются через утилиту rac.

  1. Проверим связь с сервером администрирования и запросим список доступных кластеров 1С:
   /opt/1cv8/x86_64/8.3.16.1148/rac cluster list localhost:1545
  1. На выходе утилита вернет структуру данных с параметрами вашего кластера:
   cluster : d3b07384-d113-11eb-bc86-00155d011303
   host : PEN-PC
   port : 1541
   name : "PEN-Cluster"

Важно: Строка cluster : <UUID> содержит уникальный идентификатор вашего кластера. Он потребуется для любых последующих команд. Сохраните этот UUID.

Практическое задание

Цель работы: Написать полностью автоматизированный скрипт на Bash, который без использования Windows-интерфейсов будет создавать новую базу данных в PostgreSQL и регистрировать ее в кластере серверов 1С:Предприятие. Технические требования:

nano ~/create_db.sh

Вставьте следующий код (адаптируйте пути под вашу версию платформы 1С): #!/bin/bash # Проверяем, передан ли параметр с именем базы if [ -z "$1" ]; then echo "Ошибка: Не указано имя информационной базы!" echo "Использование: $0 <Имя_Базы>"

    exit 1
fi
DB_NAME=$1
RAC_PATH="/opt/1cv8/x86_64/8.3.16.1148/rac"
RAS_ADDR="localhost:1545"

echo "=== Этап 1. Получение UUID кластера ===" # Получаем UUID первого активного кластера из списка CLUSTER_UUID=$($RAC_PATH cluster list $RAS_ADDR | grep "cluster" | head -n 1 | awk '{print $3}') if [ -z "$CLUSTER_UUID" ]; then echo "Ошибка: Не удалось подключиться к RAS или найти активный кластер!"

    exit 1
fi

echo "Найден кластер UUID: $CLUSTER_UUID" echo "=== Этап 2. Создание базы данных в PostgreSQL ===" # Чтобы psql не запрашивал пароль интерактивно, передаем его через переменную окружения

export PGPASSWORD="1111"

# Создаем базу в PostgreSQL (кодировка UTF8 обязательна для 1С) createdb -h localhost -p 5432 -U postgres -E UTF8 -O postgres $DB_NAME if [ $? -ne 0 ]; then echo "Ошибка создания базы данных в PostgreSQL!"

    exit 1
fi

echo "База данных $DB_NAME в СУБД создана успешно." echo "=== Этап 3. Регистрация информационной базы в 1С ===" # Регистрируем базу в кластере серверов 1С $RAC_PATH infobase --cluster=$CLUSTER_UUID create \

    --name=$DB_NAME \
    --dbms=PostgreSQL \
    --db-server=localhost \
    --db-name=$DB_NAME \
    --db-user=postgres \
    --db-pwd=1111 \
    --create-database=N \
    $RAS_ADDR
if [ $? -ne 0 ]; then

echo "Ошибка регистрации информационной базы в кластере 1С!" # Откатываем создание базы в PostgreSQL в случае неудачи

    dropdb -h localhost -p 5432 -U postgres $DB_NAME
    exit 1
fi

echo "=== Информационная база $DB_NAME успешно создана и зарегистрирована! ===" Сделайте скрипт исполняемым и запустите его:

chmod +x ~/create_db.sh
~/create_db.sh AutomatedDB

Проверка результата: Выполните команду получения списка зарегистрированных информационных баз: /opt/1cv8/x86_64/8.3.16.1148/rac infobase --cluster=<Ваш_UUID_Кластера> summary list localhost:1545 В выведенном списке вы должны увидеть созданную базу AutomatedDB. Также вы можете запустить pgAdmin под Windows и убедиться, что физическая база данных появилась в списке баз PostgreSQL.

Проверьте себя

  1. Какую роль играет сервер администрирования RAS в архитектуре 1С на Linux? Ответ: RAS выступает в роли сетевого моста. Он преобразует сетевые запросы утилиты RAC, отправляемые по стандартному порту 1545, во внутренний протокол взаимодействия с менеджером кластера rmngr (порт 1540).
  2. Как получить UUID кластера, необходимый для выполнения большинства административных команд в RAC? Ответ: С помощью команды rac cluster list localhost:1545. Полученный UUID копируется из свойства cluster выведенной структуры.
  3. Почему при автоматизации создания баз данных через RAC рекомендуется создавать физическую базу в СУБД PostgreSQL отдельной командой (например, createdb), а не доверять это серверу 1С параметром --create-database=Y? Ответ: В Linux-системах, особенно в WSL, системный пользователь usr1cv8 (под которым работает сервер 1С) часто не имеет беспарольного доступа к сокету PostgreSQL или прав на создание баз. Прямое разделение шагов (создание базы средствами СУБД от имени postgres и последующая регистрация в 1С с флагом --create-database=N) гарантирует стабильность и полный контроль над параметрами кодировки (UTF-8) и владельца базы.
  4. Какой порт используется по умолчанию службой RAS, и можно ли его переопределить? Ответ: По умолчанию используется порт 1545. Его можно переопределить при запуске службы с помощью параметра --port=XXXX (например, для запуска нескольких независимых серверов администрирования на одном хосте).
  5. В чем заключается ключевое отличие утилит RAC и RAS с точки зрения места их запуска? Ответ: Сервер администрирования RAS должен быть запущен непосредственно на той же машине (или иметь прямой доступ к ней), где работает менеджер кластера 1С. Консольный клиент RAC является полностью кросс-платформенным инструментом и может запускаться удаленно на любой рабочей станции администратора (включая Windows или macOS), имеющей сетевой доступ к порту RAS.
Расширение «НОПик» для 1С — встраиваемый коннектор к внешнему AI с интеллектуальным поиском по базе. Задавайте вопросы обычными словами - AI сам найдёт нужное. 45 дней бесплатно.

Попробовать НОПик →
Знаете ответ на такие вопросы не хуже автора статьи? Пройдите бесплатную анонимную проверку уровня на infolimp.ru - 3 практических задачи, 15 минут, публичный токен-профиль, который можно показать работодателю или заказчику. Без регистрации по почте.

Проверить свой уровень бесплатно →