v8-runner

Автономный сервер

Автономный сервер ibsrv поднимаете вы или раннер. Ваш сервер раннер только использует: подключается к работающим шлюзам и не запускает, не останавливает его процесс. Сервер под управлением раннера раннер сам поднимает на своей машине и сам останавливает.

Выберите вариант по расположению базы и утилит. Обозначения схем и настройки файлов проекта описаны отдельно.

Автономный сервер на своей машине

Сервер поднимаете вы. Раннер подключается к ibsrv по двум шлюзам: Конфигуратор — по прямому, как в кластер; сессия SSH — по агентскому.

Конфигурация

Основной файл v8project.yaml описывает исходники на машине раннера.

workPath: .build         # журналы и временные файлы; можно удалить
format: DESIGNER         # исходники в формате платформы
source-set:
  - name: main           # локальное имя набора
    type: CONFIGURATION  # основная конфигурация
    path: src/cf         # путь от каталога v8project.yaml

v8project.local.yaml рядом с основным файлом:

infobases:
  origin:
    connection: "Srvr=localhost;Ref=demo"  # прямой шлюз
    user: developer                        # пользователь базы и SSH-шлюза
    password: "ib-password"
    standalone:
      gate: "localhost:1543"               # агентский SSH-шлюз
      exchange:
        dir: /srv/ibsrv/users/developer    # каталог пользователя шлюза
    web:
      url: "http://localhost:8314/demo"    # встроенный HTTP-сервер

На машине раннера работает ibsrv с именем базы demo и указанными шлюзами. Каталог пользователя шлюза доступен раннеру по /srv/ibsrv/users/developer; workPath находится отдельно. HTTP-адрес соответствует настройкам самого ibsrv.

Автономный сервер на другой машине

Автономный сервер на отдельной машине. Доступ к чужому диску раннеру не нужен: с платформой у себя он идёт Конфигуратором в прямой шлюз и держит файлы у себя; без платформы ему хватает SSH до агентского шлюза и объявленного канала файлов.

Конфигурация

Используйте тот же v8project.yaml, что в первом варианте этой страницы. Меняется локальный файл.

v8project.local.yaml рядом с основным файлом:

infobases:
  origin:
    connection: "Srvr=srv.example;Ref=demo"  # прямой шлюз
    user: developer                          # пользователь базы и SSH-шлюза
    password: "ib-password"
    standalone:
      gate: "srv.example:1543"               # агентский SSH-шлюз
      exchange: sftp                         # файлы через то же SSH-соединение
    web:
      url: "http://srv.example:8314/demo"    # встроенный HTTP-сервер

srv.example — машина с ibsrv. Конфигуратор использует прямой шлюз и локальные файлы; агентский путь использует SSH и SFTP. Если на машине раннера нет платформы, оставьте standalone и уберите connection: обмен пойдёт через агентский шлюз.

Автономный сервер под управлением раннера

Сервер нужен для разработки и тестов на своей машине, а поднимать его руками не хочется. Раннер поднимает ibsrv командой standalone start и останавливает командой standalone stop. Порты прямого шлюза, SSH-шлюза и HTTP раннер выбирает свободными, для SSH-шлюза создаёт одноразовый ключ хоста, без которого сервер не стартует, а готовность проверяет пробой прямого шлюза (61, 65). Сервер живёт между командами: push, test и остальные подключаются к нему так же, как к вашему.

Конфигурация

Используйте тот же v8project.yaml, что в первом варианте этой страницы. Меняется локальный файл.

v8project.local.yaml рядом с основным файлом:

infobases:
  origin:
    user: developer          # пользователь базы и SSH-шлюза
    password: "ib-password"
    standalone:
      managed:               # ibsrv поднимает раннер
        db-path: build/ib    # файловая база сервера, от каталога этого файла
        name: demo           # имя базы на сервере, Ref= прямого шлюза

База сервера может лежать в СУБД: вместо db-path объявите секцию dbms. dbms.managed поднимает PostgreSQL раннер (dbms); можно назвать и вашу СУБД.

infobases:
  origin:
    user: developer
    password: "ib-password"
    standalone:
      managed:
        name: demo
    dbms:
      managed: {}            # PostgreSQL поднимает раннер
      name: demo_data        # физическое имя БД
      locale: ru             # Locale= для создания базы
tools:
  postgres:
    path: "C:/PostgreSQL-1C/17"  # каталог сборки

Шлюзы, адрес HTTP и каталог обмена не объявляются: раннер знает их сам, потому что сам поднял сервер, а называет их standalone status. ibsrv берётся из той же установки платформы, что выбирают остальные команды. Запись о поднятом сервере — процесс, порты, ключ — раннер держит под localPath.

Цикл работы

v8-runner infobase create   # база в db-path с конфигурацией из исходников
v8-runner standalone start      # ibsrv над этой базой, ждёт готовности
v8-runner push
v8-runner test
v8-runner standalone stop

infobase create создаёт базу до запуска сервера, как того требует платформа (75). Команде, которой нужен сервер, а он не поднят, раннер отвечает отказом и называет standalone start следующим шагом.

С базой в СУБД цикл начинается с СУБД: базу создают до запуска сервера, а для этого нужна работающая СУБД.

v8-runner dbms start
v8-runner infobase create
v8-runner standalone start
v8-runner push
v8-runner test
v8-runner standalone stop
v8-runner dbms stop

Прямой шлюз ibsrv и его диапазон слушают все интерфейсы машины, ключей ограничить их адресом нет; HTTP и SSH-шлюз слушают только 127.0.0.1. База без пользователей открывается по прямому шлюзу без учётных данных. Закройте порты брандмауэром, если машина доступна из сети.

При dbms.managed данные лежат под localPath/infobases/<база>/managed/ (по умолчанию .local/ рядом с v8project.yaml): удаление workPath их не трогает. Команды удаления данных у раннера нет.

Останавливает раннер только сервер, который поднял сам. ibsrv, поднятый не раннером над той же базой или на том же порту, он не трогает и называет в ответе.

Возможности операций — на странице Компоненты.