Skip to content

Instantly share code, notes, and snippets.

@artbear
Created September 6, 2019 15:42
Show Gist options
  • Save artbear/5d20ca5e378509f08aba5294873fb137 to your computer and use it in GitHub Desktop.
Save artbear/5d20ca5e378509f08aba5294873fb137 to your computer and use it in GitHub Desktop.
Запуск нескольких экземпляров сервера 1С Предприятия 8.3 разных релизов на одном Linux-сервере http://is.kuntashov.ru/public/1118281/

Запуск нескольких экземпляров сервера 1С Предприятия 8.3 разных релизов на одном Linux-сервере Публикация № 1118281 Администрирование - Системное

кластер сервер сервис 1с linux

8
Несколько слов о том, КАК это сделать, для тех кто сильно далек от GNU/Linux. 0. Общие моменты

Весь нижеследующий материал излагается с расчетом на то, что читатель как минимум заглядывал в Клиент-серверный вариант. Руководство администратора. В данном руководстве даже есть глава "4.3. Обеспечение совместной работы нескольких серверных процессов", в которой в свою очередь есть раздел 4.3.3. Для ОС Linux, однако, он не дает ответа на вопрос, обозначенный в заголовке статьи.

Теперь к сути! Специфика пакетных менеджеров, используемых в GNU/Linux для установки (обновления) программного обеспечения, такова, что зачастую отсутсвует возможность установить две разные версии одного и того же пакета. Так дело обстоит и с пакетами технологической платформы 1С Предприятия - устанавливая новую версию (новый релиз), происходит обновление (замена) пакета предыдущей версии.

Для специалистов, долгое время работавших с MS Windows, такое положение дел выглядит непривычным (необычным, непонятным, ...). Т.к. бывает удобно, когда у тебя одновременно установленно два (а может больше, ведь кто удаляет старые версии платформы?! ;) ) разных релиза платформы и ты можешь быстро "переключиться" между ними, либо запустить одновременно несколько серверов 1С Предприятия разных релизов.

В GNU/Linux "напрямую" такая возможность отсутствует, что конечно печалит некоторых коллег. Посему, постараюсь показать, что в решении данной задачи нет ничего сложного, НО ... Да - это "костыль" ...

Для решения обозначенной задачи нам надо определиться со следующими моментами: а. На каких сетевых портах будут работать компоненты кластера 1С Предприятия (ragent, rmngr и rphost) каждого из экземпляров; б. Место размещения каталога кластера каждого из экземпляров.

Дабы внести некую определенность, будем отталкиваться от следующих вводных:

  1. Используемые релизы платформы 8.3.13.1644 и 8.3.13.1809 (могут быть любые другие). В нашем случае принципиально только то, что оба релиза версии 8.3, ибо одновременно установить версии 8.2 и 8.3 не составляет проблем;
  2. Каталоги кластеров располагаются в /home/1C/first и /home/1C/second, соответственно;
  3. Компоненты кластера работают на следующих сетевых портах: релиз 8.3.13.1809 на 1540,1541,1560-1590; релиз 8.3.13.1644 на 2540,2541,2560-2590;
  4. Речь пойдет о x64-платформе, установленной на CentOS, но предлагаемый сценарий легко перенести на любой другой дистрибутив с некоторыми исправлениями.

ВАЖНО: Ответственность за любые последствия, возникшие в результате внесения изменений в работающую систему по материалам данной статьи, лежат исключительно на лице, внесшим данные изменения!

  1. Подготовка окружения

  2. Устанавливаем пакеты платформы релиза 8.3.13.1644 обычным способом;

  3. Останавливаем, если запущен, сервер 1С Предприятия;

  4. Копируем файл /etc/sysconfig/srv1cv83 в файл /etc/sysconfig/srv1cv83131644;

  5. Копируем файл /etc/init.d/srv1cv83 в файл /etc/init.d/srv1cv83131644 (в нашем случае важно, чтобы имена новых файлов из п. 2 и п. 3 совпадали);

  6. Рекурсивно копируем каталог /opt/1C/v8.3/x86_64/ в каталог /opt/1C/v8.3.13.1644/x86_64/;

  7. Устанавливаем обычным образом пакеты релиза 8.3.13.1809;

  8. В файле /etc/sysconfig/srv1cv83131644 меняем следующие параметры:

SRV1CV8_PORT=2540 SRV1CV8_REGPORT=2541 SRV1CV8_RANGE=2560:2591 SRV1CV8_DATA=/home/1C/second 8. В файле /etc/init.d/srv1cv83131644 меняем следующие строки:

G_BINDIR="/opt/1C/v${G_VER_MAJOR}.${G_VER_MINOR}.${G_VER_BUILD}.${G_VER_RELEASE}/${G_VER_ARCH}"

[ -z "$SRV1CV8_PIDFILE" ] && SRV1CV8_PIDFILE="/var/run/srv1cv${G_VER_MAJOR}${G_VER_MINOR}${G_VER_BUILD}${G_VER_RELEASE}.pid" 9. В файле /etc/sysconfig/srv1cv83 меняем следующие строки:

SRV1CV8_DATA=/home/1C/first 10. Создаем каталоги /home/1C/first и /home/1C/second; 11. Устанавливаем владельцем на каталог /home/1C с подкаталогами пользователя usr1cv8 (man 1 chown в помощь).

  1. Активация и запуск сервисов

Чтобы сервис для релиза 8.3.13.1644 запускался самостоятельно при загрузке системы необходимо выполнить команду:

$ sudo systemctl enable srv1cv83131644 Для запуска сервисов выполняем последовательно:

$ sudo systemctl start srv1cv83 $ sudo systemctl start srv1cv83131644 После чего необходимо убедиться, что необходимые сервисы запустились и работают. Для этого можно прибегнуть к командам ps и/или pgrep (man 1 ps и man 1 pgrep в помощь), или к класическому service status <имя_сервиса>.

ВАЖНО: С помощью административной консоли (или ras/rac) требуется создать (проверить наличие) кластеров на каждом экземпляре сервера 1С Предприятия!

  1. Резюме

Мы получили два сервиса: srv1cv83 для запуска сервера 1С Предприятия релиза 8.3.13.1809 и srv1cv83.13.1644 для запуска сервера 1С Предприятия релиза 8.3.13.1644 (файлы запуска /etc/init.d/srv1cv83 и /etc/init.d/srv1cv83131644 соответственно).

Получили два конфигурационных файла для сервера 1С Предприятия: /etc/sysconfig/srv1cv83131644 - для релиза 8.3.13.1644 и /etc/sysconfig/srv1cv83 - для релиза 8.3.13.1809.

Получили два каталога кластера 1С Предприятия: /home/1C/second - для релиза 8.3.13.1644 и /home/1C/first - для релиза 8.3.13.1809.

Для чего все это было надо? Думаю, каждый сам ответит для себя на этот вопрос ;)

P.S. Есть конструктивная критика? Всегда рад услышать!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment