Установка сервера адміністрування кластера серверів 1С: Підприємства

У даній статті познайомимося з сервером адміністрування кластера серверів, а конкретно з утилітами rac.exe і ras.exe, а також програми deployka за допомогою яких стає можливим адміністрування кластера серверів 1С: Підприємство з командного рядка.

За традицією, всім кому ліньки читати, пропоную подивитися вебінар на зазначену тему

Ну а іншим ласкаво просимо під кат:

1. Загальні відомості

Управляти кластером серверів 1С: Підприємство версії 8.3 можливо як за допомогою консолі адміністрування серверів 1С, так і з командного рядка. Для цих цілей служить Сервер адміністрування кластера серверів, який складається з двох утиліт: безпосередньо самого сервера – програми rac.exe і утиліти командного рядка rac.exe, яка звертаючись до запущеного раніше сервера ras дозволяє виконувати різні операції з кластером серверів 1С: Підприємства.

Детально про цей механізм можна прочитати в поставляється разом з платформою книзі «Керівництво адміністратора. Клієнт-серверний варіант »().

А загальна схема роботи цієї зв’язки виглядає наступним чином:

Сервер адміністрування повинен бути тієї ж версії, що і версія кластера серверів 1С: Підприємства, причому одночасно до одного кластеру серверів можуть бути підключені кілька серверів адміністрування, але конкретний сервер адміністрування може взаємодіяти тільки з одним агентом сервера.

І сервер адміністрування і утиліта командного рядка можуть працювати в будь-який підтримуваної платформою 1С: Підприємства ОС. Але в даній статті ми обмежимося тільки ОС сімейства Windows.

2. Встановлення компонент сервера адміністрування

І сам сервер і утиліта адміністрування входять до складу компонент сервера 1С: Підприємства. Відповідно, на комп’ютері із запущеною службою агента сервера 1С: Підприємства вони вже мають бути встановлені за замовчуванням.

Щоб переконатися в цьому, досить перейти в каталог з файлами сервера 1С: Підприємства і знайти в ньому відповідні утиліти (для зручності файли можна згрупувати за типом).

Детально про установку сервера 1С: Підприємства я писав тут.

Для установки сервера адміністрування на комп’ютері, де раніше не був встановлено сервер 1С: Підприємства, необхідно запустити дистрибутив установки сервера 1С і в складі компонент вибрати пункт «Сервер 1С: Підприємство 8».

Причому, при обраної даної компоненті на наступному кроці майстер установки запропонує встановити сервер 1С: Підприємства як службу Windows. Від цього пункту звичайно ж слід відмовитися знявши відповідний прапор.

Після установки необхідно переконатися в наявності всіх необхідних компонент описаним вище способом.

3. Запуск сервера адміністрування

Для отримання докладної інформації щодо утиліті ras.exe можна викликати довідку виконавши команду

ras help

З довідки видно, що сервер адміністрування може працювати як в режимі додатки, так і як служба Windows (параметр service ). Також з ми можемо поставити мережевий порт, на якому буде працювати сервер адміністрування (параметр port, за замовчуванням використовується порт +1545), А для режиму адміністрування кластера використовується режим claster. Викликати довідку до даного режиму можна командою:

rac help cluster

Після чого побачимо, що у даного режиму в якості аргументу вказується адреса агента кластера серверів 1С: Підприємства. За замовчуванням це localhost: 1 540.

Таким чином, якщо сервер адміністрування запускається на тій же машині, де запущений і агент сервера 1С: Підприємства, досить виконати команду

rac cluster 

Ну а якщо необхідно підключитися до агента сервера, запущеному, наприклад, на комп’ютері з мережевим ім’ям Server1C, причому агент працює на нестандартному порту 2540, то команда буде наступною:

rac cluster server1c: 2540

4. Запуск сервера адміністрування в якості служби Windows

Звичайно ж, щоб не запускати сервер адміністрування кожен раз руками, зручно запустити його одного разу в якості служби Windows. Але, на жаль, розробники платформи не реалізували можливість автоматичної реєстрації відповідної служби в системі, як, наприклад, це зроблено для агента сервера 1С. Для додавання служби пропонується скористатися системної утилітою sc. Давайте розглянемо цей процес трохи більш детально.

Для початку, я рекомендую для створюваної служби створити окремого користувача Windows. Детально як це зробити я описував тут.

Нехай це буде локальний користувач з ім’ям USR1CV8_RAS і паролем Pass123

Далі, необхідно створити і виконати bat-файл, який буде реєструвати відповідну службу. Змісту файлу наступне:

Файл register-ras.bat:

off
rem% 1 – повний номер версії 1С: Підприємства
SrvUserName =. \ USR1CV8_RAS
SrvUserPwd = “Pass123”
CtrlPort = 1540
AgentName = localhost
RASPort = 1545
SrvcName = “1C: Enterprise 8.3 Remote Server”
BinPath = “\” C: \ Program Files \ 1cv8 \\ bin \ ras.exe \ “cluster –service –port = RASPort AgentName: CtrlPort”
Desctiption = “1C: Enterprise 8.3 Remote Server”
sc stop SrvcName
sc delete SrvcName
sc create SrvcName binPath = BinPath start = auto obj = SrvUserName password = SrvUserPwd displayname = Desctiption

У файлі вказуємо:

  • ім’я користувача та пароль з під якого буде запускатися служба – змінні SrvUserName і SrvUserPwd
  • адреса і порт агента сервера, який ми збираємося адмініструвати – змінні AgentName і CtrlPort
  • А також ім’я служби і мережевий порт на якому буде працювати сервер адміністрування – змінні RASPort і  SrvcName. Має сенс міняти ці параметри тільки якщо ви хочете запустити паралельно кілька серверів адміністрування, наприклад для обслуговування різних серверів 1С.

В якості єдиного параметра bat-файлу виступає поточна версія платформи 1С: Підприємства. Таким чином, для створення служби запускаємо командний рядок з правами адміністратора і запускаємо створений раніше файл register-ras.bat, не забувши вказати потрібну версію платформи.

Перевіряємо, що в системі з’явилася служба з вказаним ім’ям. І відразу запускаємо її, вибравши відповідний пункт у контекстному меню.

На цьому установка сервера адміністрування в якості служби завершена.

5. Адміністрування кластера серверів за допомогою утиліти rac.exe

Отже, сервер адміністрування ми встановили. Взаємодією з сервером здійснюється за допомогою спеціальної консольної утиліти rac.exe. Виконаємо команду

rac help

щоб отримати довідку даної програми.

Як видно з довідки, утиліта має один загальний аргумент, що задає адресу сервера адміністрування (за замовчуванням localhost: 1545) І безліч режимів роботи: для адміністрування агента кластера серверів, самого кластера, менеджера кластера, робочих процесів і т. Д. Довідку по кожному режиму можна викликати відповідної командою.

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

Отримання списку інформації про кластери:

Отримання списку інформаційних баз на заданому кластері серверів:

Отримання списку з’єднань з вказаною інформаційною базою:

Утиліта адміністрування дозволяє виконати весь обсяг робіт, необхідний для адміністрування кластера серверів, за винятком аутентифікація ОС для адміністраторів кластера серверів, робочого сервера та інформаційної бази.

6. Програмні обгортки для роботи з сервером адміністрування

Як видно з прикладів, працювати з командного рядка з утилітою rac то ще задоволення. Але даний механізм і не створювався для ручного управління. Наприклад, на сайті ІТС є Java-архівів, який дозволяє взаємодіяти з сервером адміністрування з програми на мові Java, без допомоги консольної утиліти адміністрування. Завантажити цей пакет можна.

Головне, ми маємо можливість виконувати різні інструкції на кластері серверів 1С з командного рядка. А це означає, що можна додавати необхідні функції по взаємодії з кластером серверів 1С: Підприємства в різні програми, обробки або ж скрипти.

Наприклад, серед іншого, працювати з сервером адміністрування може написана на мові OneScript програма deployka.

Про скіптовом движку OneScript я вже розповідав тут.

Про програму deployka можна докладніше дізнатися тут.

Ну а максимально повний огляд всіх наявних бібліотек і додатків написаних на OneScript наведено в цій статті.

7. Встановлення та налаштування з програмою deployka

Алгоритм установки OneScript і deployka досить докладно розібраний в статтях за вказаними в попередньому пункті посиланнях. Ну а якщо коротко, він складається з наступних пунктів:

1. Викачуємо дистрибутив OneScript з офіційного сайту.

2. Встановлюємо, слідуючи інструкціям майстра.

3. Перелогініваемся в системі, щоб застосувались нові змінні середовища.

4. Запускаємо командний рядок з правами адміністратора, перевіряємо, що попередні пункти виконані коректно командної

oscript -help

5. Встановлюємо програму deployka за допомогою пакетного менеджера opm, виконавши команду

opm install deployka

6. Перевіряємо, що все працює, викликавши довідку «деплойкі» командою

deployka help

7. Ось загалом то і все. Всі режими роботи програми видно на екрані. Далі читаємо довідку на сайті або в консолі, викликавши підказку для кожного режиму відповідної командою:

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

deployka session kill -db Accounting_Demo -rac "C: \ Program Files \ 1cv8 \ 8.3.11.2867 \ bin \ rac.exe" -db-user "АбрамовГС (директор)"

8. Тепер можна використовувати «деплойку» в своїх скриптах. Наприклад скрипт поновлення інформаційної бази з сховища, з відключенням користувачів і оновленням бази даних може виглядати так:

on
rem Встановлюємо значення змінних
ServerName = “1CAPP: 2541”
RacPath = “C: \ Program Files \ 1cv8 \ 8.3.11.2954 \ bin \ rac.exe”
uccode = “123”
 
BaseName = “ERP_Test”
UserName = “Admin”
UserPass = “Pass123”
ConStr = “/ 1CAPP: 2541 \ ERP_Test”
 
RepoPath = “tcp: // 1CAPP / ERP_DEV”
RepoUserName = “test”
RepoUserPass = “123”
rem Завершуємо роботу користувачів
deployka session kill -db BaseName -db-user UserName -db-pwd UserPass -rac RacPath -lockuccode uccode
rem Оновлюємо конфігурацію бази зі сховища
deployka loadrepo ConStr RepoPath -db-user UserName -db-pwd UserPass -storage-user RepoUserName -storage-pwd RepoUserPass -uccode uccode
rem Оновлюємо конфігурацію бази даних
deployka dbupdate ConStr -db-user UserName -db-pwd UserPass -uccode uccode
rem Знімаємо блокування сеансів
deployka session unlock -db BaseName -db-user UserName -db-pwd UserPass -rac RacPath -lockuccode uccode

Всім дякую всім, хто дочитав до кінці. Пишіть, якщо у вас залишилися питання.

Ссылка на основную публикацию