Централизованное управление кластером 1С Предприятия, состоящим из нескольких рабочих серверов, работающих на платформе GNU/Linux

26.08.19

Разработка - Инструментарий разработчика

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
clstr_ctl.sh
.sh 3,24Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

0. Общие моменты
В контексте задачи, обозначенной в заголовке статьи, предполагается что управлять серверами кластера 1С Предприятия мы будем из консоли GNU/Linux посредством bash-скрипта. Указанный скрипт, в свою очередь, взаимодействует с серверами кластера по протоколу ssh.
Осуществлять централизованное управление серверами кластера, можно с любого компьютера, работающего под управлением операционной системы GNU/Linux (например, таковым может стать один из центральных серверов кластера 1С Предприятия). Для наглядности излагаемого материала, будем исходить из следующей инфраструктуры: компьютер work — рабочий компьютер администратора, с которого будет осуществляться централизованное управление серверами кластера; сервера server_a, server_b, server_c — сервера из состава кластера серверов 1С Предприятия.
Вместе с тем предполагается, что на компьютере, с которого планируется осуществлять централизованное управление (запуск скрипта), уже существует пользователь (не root) и у него уже созданы ключи для ssh-клиента. Информация о том, как создать пользователя в ОС GNU/Linux и как создать ключи для ssh-клиента не является предметом данной статьи. Подробнее об этом можно узнать из страниц справочного руководства (man 8 useradd и man 1 ssh-keygen).
Все описанное в статье прошло проверку работоспособности на кластере 1С Предприятия, работающем под управлением ОС CentOS 7, но вполне может быть адаптировано под любой имеющийся дистрибутив GNU/Linux.

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

1. Подготовка инфраструктуры серверов к централизованному управлению
Предполагается, что на всех серверах кластера (в нашем случае server_a, server_b и server_c) уже существует пользователь операционной системы (не
root), от имени которого будут выполняться удаленные команды. Одним из возможных вариантов, которым мы и воспользуемся, может быть задействование пользователя, созданного при установке серверных пакетов 1С Предприятия — usr1cv8 (имя пользователя может несколько отличаться, в зависимости от используемой версии 1С Предприятия).

1.1. Настройки sudo на рабочих серверах
На всех серверах кластера необходимо наделить выбранного пользователя правами на управление сервисами 1С Предприятия (сам сервер 1С Предприятия и сервер RAS, в случае его использования). Для этого мы создадим файл с именем, соответствующим имени пользователя (однако, имя файла может быть любым), в каталоге /etc/sudoers.d следующего содержания:

usr1cv8 ALL = NOPASSWD: /usr/bin/systemctl start srv1cv83, /usr/bin/systemctl stop srv1cv83
usr1cv8 ALL = NOPASSWD: /usr/bin/systemctl start ras1cv83, /usr/bin/systemctl stop ras1cv83

Текст 1: Содержимое файла /etc/sudoers.d/usr1cv8

Таким образом мы наделили пользователя usr1cv8 возможностью запускать и останавливать сервисы srv1cv83 и ras1cv83 без ввода пароля.
Для более детального изучения структуры конфигурационного файла рекомендуется обратиться к страницам справочного руководства (man 5 sudoers).
Проверить правильность сделанных настроек можно выполнив от имени выбранного пользователя соответствующие команды. В нашем случае, для сервера server_a эти команды будут иметь следующий вид:

[usr1cv8@server_a ~]$ sudo systemctl stop srv1cv83
[usr1cv8@server_a ~]$ sudo systemctl start srv1cv83

Обе команды должны выполниться без запроса пароля и без каких-либо ошибок (дополнительных сообщений). После выполнения первой команды не должно остаться выполняющихся процессов, относящихся к серверу 1С Предприятия (ragent, rmngr и rphost). После выполнения второй команды все указанные процессы должны присутствовать в списке выполняющихся процессов.

Информацию о том как посмотреть список рабочих процессов можно почерпнуть в станицах справочного руководства (man 1 ps, man 1 pgrep).

1.2. Настройки ssh на рабочих серверах
Следующим этапом необходимо настроить возможность подключения к серверам кластера по протоколу ssh без необходимости ввода пароля пользователя. Для этого на всех серверах кластера, мы добавляем в домашнем каталоге пользователя usr1cv8 в каталог .ssh файл authorized_keys, в который помещаем публичный ключ пользователя, от имени которого мы будем запускать скрипт управления. В нашем случае это пользователь fedotov на компьютере work:

ssh-rsa AAAA6MakK+xJo9eqjH7TYE7BZP8750/BaThbpc1yjGYrOMvtOQOzMcGlU8KYu9J9KdOPNW6sitboCGugz4L
koweymAbgx5/aPwIHJqls1d5cO06sMxRjZIl0CktCHfdjIH/sHFITfRJJ fedotov@work

Текст 2: Примерное содержимое файла /home/usr1cv8/.ssh/authorized_keys

ВАЖНО: Права доступа к файлу authorized_keys должны быть не выше чем rw-r--r-- (644). В противном случае сервер ssh будет все равно запрашивать пароль, т. к. будет считать что этот файл может быть скомпрометирован. Подробнее о назначении прав доступа можно узнать из страниц справочногоруководства (man 1 chmod).

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

[fedotov@work ~]$ ssh usr1cv8@server_a

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

Last login: Wed Apr 3 17:48:39 2019 from work
[usr1cv8@server_a ~]$

На этом подготовительный этап можно считать завершенным!

2. Работа со скриптом централизованного управления
Скрипт может работать в двух вариантах: «автоматизированном» и «ручном». В «автоматизированном» варианте скрипту в качестве параметра необходимо передать имя одного из центральных серверов кластера 1С Предприятия, на котором развернут сервис RAS.
При выполнении команды останова (перезапуска) серверных процессов 1С Предприятия на серверах кластера скрипт получит необходимый список серверов от RAS:

[fedotov@work ~]$ clstr_ctl.sh stop server_a
Останавливаем сервера 1С Предприятия:
* Останов сервера 1С Предприятия на server_a                    [ DONE ]
* Останов сервера 1С Предприятия на server_b                    [ DONE ]
* Останов сервера 1С Предприятия на server_c                    [ DONE ]

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

[fedotov@work ~]$ clstr_ctl.sh start server_a
ОШИБКА: не найден файл server_a.stoped!

При успешном запуске серверов кластера результат выполнение скрипта долженвыглядеть следующим образом:

[fedotov@work ~]$ clstr_ctl.sh start server_a
Запускаем сервера 1С Предприятия:
* Запуск сервера 1С Предприятия на server_a                     [ DONE ]
* Запуск сервера 1С Предприятия на server_b                     [ DONE ]
* Запуск сервера 1С Предприятия на server_c                     [ DONE ]

Файл server_a.stoped при этом будет удален.
В «ручном» варианте в качестве параметра скрипту необходимо указать имя файла, содержащего список серверов, которыми требуется управлять. Запуск скрипта будет выглядеть следующим образом:

[fedotov@work ~]$ clstr_ctl.sh start -f ./servers.list
Запускаем сервера 1С Предприятия:
* Запуск сервера 1С Предприятия на server_a                     [ DONE ]
* Запуск сервера 1С Предприятия на server_b                     [FAILED]
* Запуск сервера 1С Предприятия на server_c                     [ DONE ]

В приведенном примере при запуске сервера 1С Предприятия на server_b возникла ошибка, которая требует непосредственного вмешательства
администратора для расследования причин ее возникновения.

 
 3. Приложение (текст скрипта clstr_ctl.sh)

 

1c linux ras bash централизованное управление

См. также

SALE! 15%

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159828    876    399    

862

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7946    59    23    

70

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

9360 руб.

17.05.2024    23550    68    45    

117

SALE! 15%

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8500 руб.

10.11.2023    10489    36    25    

61

SALE! 15%

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

22200 19980 руб.

06.10.2023    15461    35    7    

70

SALE! 35%

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

4800 3120 руб.

14.01.2013    188106    1140    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17333    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7733    8    35    

23
Оставьте свое сообщение