v8-runner

cluster

Команды cluster запускают и останавливают сервер 1С — ragent, rmngr и rphost — на машине раннера Windows для базы, объявленной кластером под управлением раннера. Кластер службы или вашей консоли раннер только использует и не трогает его процессы.

Вывод

cluster start

v8-runner cluster start

Запускает сервер 1С как приложение той же платформы, что выбирают остальные команды (tools.platform): агент ragent с реестром под localPath, затем сервер администрирования ras, и отдаёт ответ после того, как rac cluster list назвал кластер. Порт агента, regport и диапазон рабочих процессов раннер выбирает свободными вне динамического диапазона и закрепляет при первом запуске: реестр кластера хранит их все. Порт ras выбирается заново при каждом запуске. При dbms.managed команда первым шагом поднимает PostgreSQL, если он не работает. Кластер живёт между командами, пока его не остановит cluster stop. Запись о процессах и портах раннер держит под localPath: удаление workPath кластер не трогает. На Linux и macOS команда отказывает.

Если кластер уже запущен раннером этой копии, команда ничего не запускает и называет его; упавший ras поднимает заново. Остатки своего упавшего агента — rmngr и rphost — снимает по их PID и запускает кластер на прежних портах. Если закреплённый порт — regport, порт агента или порт диапазона — занят чужим процессом, команда сама делает то же, что --new-regport: новый реестр на свободных портах и регистрация базы над прежней БД. Чужой процесс остаётся работать, ответ называет прежний regport и предупреждает, кто занял порт. v8project*.yaml раннер не правит: адрес кластера берите из ответа cluster start или cluster status и не кешируйте. Если на порту работает чужой ragent над реестром этой копии или перечня процессов нет, команда отказывает без нового реестра. Пока работает свой автономный сервер этой базы, команда отказывает и называет standalone stop: одну БД держит один сервер.

v8-runner cluster start --dry-run

Показывает состояние, закреплённые адреса и каталог реестра, если кластер уже запускался. Ничего не запускает. Такое же превью есть у cluster stop и cluster restart. Команды cluster принимают только объявленную базу: строка соединения в --infobase — отказ.

v8-runner cluster start --new-regport

То же, что делает cluster start без ключа, когда закреплённые порты заняты чужим процессом, но явно: заводит новый реестр на свободных портах и регистрирует объявленную базу над прежней БД без её создания. UUID базы меняется, данные, поколение конфигурации и память раннера остаются. Если базы ещё не было, остаётся только новый реестр. Прежний реестр удаляется после регистрации и пробы базы, поэтому отказ на любом шаге ничего не теряет. При свободных портах ключ — отказ. Если на прежних портах работает чужой ragent над реестром этой копии, команда отказывает без нового реестра: такой реестр живой.

cluster status

v8-runner cluster status

Отвечает, запущен ли кластер этой копии: не запущен, запущен раннером или его порт занят не раннером. Для своего кластера называет PID агента и ras, версию платформы, адрес Srvr=, адреса агента и ras и ответил ли rac cluster list. Говорит, создана ли база в реестре. Называет и остатки упавшего агента, не трогая их. Клиент и Конфигуратор команда не запускает, замок рабочей копии ей не нужен, ключа --dry-run у неё нет.

cluster stop

v8-runner cluster stop

Останавливает кластер, который запустил раннер этой копии: сначала ras, он переживает агента, затем ragent с его рабочими процессами, и ждёт их завершения; снимает и остатки упавшего агента. Аварийные дампы, которые процессы платформы пишут при такой остановке, удаляет. Данные базы в СУБД и реестр остаются. PostgreSQL, поднятый шагом cluster start, гасит следом, а поднятый dbms start не трогает (таблица владения). Кластер службы или консоли не останавливает. Если кластера нет и гасить нечего, команда успешна.

cluster restart

v8-runner cluster restart

То же, что cluster stop и затем cluster start, для своего кластера. PostgreSQL не трогает.

Классы ответов

КлассКогда возникает и что означает
Кластер запущенcluster start поднял ragent и ras, rac cluster list ответил. Пример
Состояниеcluster status называет свой кластер или говорит, что он не запущен. Пример
Остатки упавшего агентаАгент упал, его rmngr и rphost живы: cluster status их называет, cluster start и cluster stop снимают. Пример
Кластер остановленcluster stop завершил свои процессы. Пример
Порт занятЗакреплённый порт держит чужой процесс: cluster start завёл новый реестр, в ответе previous_regport, в предупреждении — кто занял порт. Пример
Новый реестрcluster start --new-regport перенёс базу в реестр на новых портах. Пример
Нет серверных компонентовНа машине нет ragent выбранной платформы или это Linux либо macOS: environment_unavailable, выход CLI 2. Пример

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

Варианты ответа

Кластер запущен

cluster start: started the cluster 8.5.4.2028, ragent pid 6312
  connection  Srvr=127.0.0.1:46761;Ref=demo
  agent  127.0.0.1:46760
  ras  127.0.0.1:25425
  worker range  46762:46777
  ras pid  16980
  rac cluster list  answers
  infobase  not created yet: run infobase create
  registry  .local/infobases/origin/managed/cluster/registry-46761
  log  .local/infobases/origin/managed/cluster/cluster.log

Состояние своего кластера

cluster status: origin: cluster 8.5.4.2028, started by this working copy, ragent pid 6312
  connection  Srvr=127.0.0.1:46761;Ref=demo
  agent  127.0.0.1:46760
  ras  127.0.0.1:25425
  worker range  46762:46777
  ras pid  16980
  rac cluster list  answers
  infobase  created
  registry  .local/infobases/origin/managed/cluster/registry-46761
  log  .local/infobases/origin/managed/cluster/cluster.log

Остатки упавшего агента

cluster status: origin: the cluster is not running
  connection  Srvr=127.0.0.1:46761;Ref=demo
  infobase  created
  remnants  4644
  the recorded process is gone

Кластер остановлен

cluster stop: ragent pid 6312, ras pid 16980 stopped
  PostgreSQL stopped  pid 15604

Порт занят

cluster start: started the cluster 8.5.4.2028, ragent pid 11160
  connection  Srvr=127.0.0.1:46793;Ref=demo
  agent  127.0.0.1:46792
  ras  127.0.0.1:25425
  worker range  46794:46809
  ras pid  10884
  rac cluster list  answers
  infobase  created
  previous regport  46761
  registry  .local/infobases/origin/managed/cluster/registry-46793
  log  .local/infobases/origin/managed/cluster/cluster.log
warning: port 46761 of the cluster of 'origin' is taken by process 9008, which this runner did not start; it is left running: the cluster moved to a new registry on regport 46793, the infobase is registered there again over its database (its id in the registry is new); take the address from this answer, v8project*.yaml is not changed

Новый реестр

cluster start: started the cluster 8.5.4.2028, ragent pid 11160
  connection  Srvr=127.0.0.1:46793;Ref=demo
  agent  127.0.0.1:46792
  ras  127.0.0.1:25425
  worker range  46794:46809
  ras pid  10884
  rac cluster list  answers
  infobase  created
  previous regport  46761
  registry  .local/infobases/origin/managed/cluster/registry-46793
  log  .local/infobases/origin/managed/cluster/cluster.log

Нет серверных компонентов

ERROR: environment unavailable: utility 'ragent' was not found: version 8.3.27.2074 is installed (8.3.27.2074) but has no 1C:Enterprise server; no version has 1C:Enterprise server