Автономный сервер
Автономный сервер 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, поднятый не раннером над той же базой или на том же порту, он не трогает и называет в ответе.
Возможности операций — на странице Компоненты.