Files
Bridge-and-Join-s/deploy/astra/README.md
fontvielle 6e503433d4 refactor(deploy): «одна команда — всё работает» для нового стенда
Переосмысление установщика по фидбеку: установщик должен делать чистую
установку «с нуля», а не миграцию. От пользователя требуется одна
команда и больше ничего:

    curl -sSL https://.../install.sh | sudo bash

deploy/astra/install.sh переписан:
- 9 чётких этапов с прогресс-индикатором (секунды от старта)
- Авто-определение ОС: Astra SE → официально, Astra CE/Debian → warn,
  Ubuntu → ask, остальные → fail
- Авто-скачивание дистрибутива ИШ (~120 МБ) с old.nsd.ru
- Авто-установка ИШ через dpkg (но если упадёт — это OK, продолжаем)
- НЕинтерактивный режим (--yes) для CI/автоматизации
- Финальная сводка с URL'ами + список ручных шагов
- Дефолтный setup.json создаётся сразу, чтоб bj-server понимал DSN
- ProtectSystem=strict, ReadWritePaths только нужные, PrivateTmp в
  systemd unit'е

deploy/astra/migrate-from-redos.sh → переименован в import-data.sh
и стал ОПЦИОНАЛЬНЫМ (для тех кто переезжает с действующего стенда).
Главный путь — чистая установка через install.sh.

deploy/astra/README.md перетряхнут:
- TL;DR с одной командой в самом верху
- Объяснение Astra SE vs Astra CE vs Debian (платное/бесплатное)
- 5 скриптов вместо 6
- Раздел «что произойдёт после установки» — режим эмуляции, что
  осталось руками
- 10-этапный путь от чистой ВМ до прохождения теста с роботом MOEX МОСТ

REPORT.md обновлён: установщик описан как «одна команда» вместо
«миграция», % готовности не изменился (но качество улучшилось).
2026-05-14 17:42:35 +03:00

8.7 KiB
Raw Permalink Blame History

Bridge-and-Join-s — установка одной командой

TL;DR — на свежей Astra Linux / Debian / Ubuntu ВМ

curl -sSL https://git.zetit.ru/zuevav/Bridge-and-Join-s/raw/main/deploy/astra/install.sh | sudo bash

Через 5-10 минут будет работать веб-админка на http://<ip>:8080/admin/.

Установщик сам:

  • Определит ОС (Astra SE/CE, Debian, Ubuntu)
  • Поставит зависимости (apt: podman, postgresql-client, git)
  • Скачает и установит Go 1.24+
  • Создаст системного пользователя bj и каталоги
  • Склонирует репозиторий в /opt/bj/src
  • Соберёт bj-server из исходников
  • Поднимет PostgreSQL 16 в podman-контейнере и накатит миграции
  • Поставит systemd unit и запустит сервис
  • Скачает дистрибутив ИШ НРД (~120 МБ) и попытается установить через dpkg

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


Какая нужна ВМ

Параметр Минимум Рекомендуется
ОС Debian 11+ / Astra CE 1.8 / Astra SE 1.6+ / Ubuntu 22.04+ Astra Linux SE 1.7 (для прод)
CPU 2 ядра 4 ядра
RAM 2 ГБ 4 ГБ
Диск 20 ГБ 50 ГБ SSD
Сеть прямой выход в интернет + статический IP

Что я понимаю про лицензии Astra Linux:

  • Astra SE — платная (~2-5 тыс. ₽/лицензия), сертифицирована ФСТЭК/ФСБ → нужна для прода с гос-требованиями
  • Astra CE — бесплатная, без сертификации, тот же базовый дистрибутив → можно использовать для дева и тестов, а для прода докупить SE
  • Debian 12 — полностью бесплатный, технически на 95% совместим с Astra (один и тот же базовый дистрибутив), ИШ скорее всего тоже взлетит, но НРД официально не поддерживает

Скрипты в этом каталоге

Файл Когда запускать Что делает
install.sh сразу после поднятия ВМ Главный скрипт. Делает всё одной командой
install-validata.sh когда придёт Валидата от НРД Установка СКЗИ Валидата CSP
install-ish.sh если install.sh не установил ИШ автоматически Ручная установка ИШ из локального .deb
healthcheck.sh для проверки состояния Цветной отчёт о работоспособности всех компонентов
import-data.sh (опционально) если переносишь с другой ВМ Экспорт БД и настроек со старой ВМ для импорта на новую

Что произойдёт ПОСЛЕ автоматической установки

install.sh дойдёт до точки, где bj-server работает, но в режиме эмуляции — потому что Валидата и сертификат УЦ МБ автоматически получить нельзя. В админке сверху будет жёлтая плашка «РЕЖИМ ЭМУЛЯЦИИ». Это ожидаемо.

Что нужно сделать пользователю руками

1. Запросить Валидата CSP в НРД (1 письмо)

Email: soed@nsd.ru или pki@moex.com. Текст подскажет сам скрипт install-validata.sh — есть шаблон. Срок ответа НРД — 1-3 дня.

Когда придёт .deb пакет:

sudo bash /opt/bj/src/deploy/astra/install-validata.sh /path/to/validata.deb

2. Получить сертификат УЦ Московской Биржи

https://ca.moex.com/ — оформить заявку от организации. Срок — зависит от УЦ.

3. Подать заявку на тестирование в TEST3 НРД

https://www.nsd.ru/workflow/zayavka-na-testirovanie/ — получить код депонента-тестера.

4. Когда всё пришло — настроить ИШ через его GUI

По DOC/ruk_install_ish_2025_11_10.pdf (раздел 10):

  • Указать БД PostgreSQL (DSN уже в /var/lib/bj/.bj/setup.json)
  • Создать канал WSL с URL https://gost.nsd.ru/onyxt3/WslService (TEST3)
  • Импортировать сертификат УЦ МБ из системного хранилища
  • Запустить ИШ как сервис: sudo systemctl enable --now igate

5. Привязать bj-server к ИШ

http://<ip>:8080/admin/setup → раздел «ИШ НРД»:

  • URL ИШ: http://localhost:8090 (порт REST API ИШ)
  • Имя канала: то что задал в ИШ на шаге 4

После этого жёлтая плашка «РЕЖИМ ЭМУЛЯЦИИ» исчезнет — сообщения пойдут в реальный НРД.


Параметры установки

install.sh принимает флаги:

sudo bash install.sh --bind=:8080 --skip-ish --yes
Флаг По умолчанию Что делает
--bind=:8080 :8080 На каком адресе/порту слушать
--branch=main main Из какой ветки репо собирать
--skip-ish (выкл) Не скачивать дистрибутив ИШ (если стоят жёсткие ограничения по интернету)
--yes / -y (выкл) Не задавать вопросов, отвечать «да» автоматически

Также через переменные окружения: REPO_URL, BRANCH, BIND_ADDR, ISH_DEB_URL, NON_INTERACTIVE.


Если что-то сломалось

Симптом Решение
bj-server.service не active journalctl -u bj-server -n 50
HTTP 200 не отвечает проверь что :8080 открыт; ss -tlnp | grep 8080
Миграции не накатились podman exec bj-postgres psql -U bj -l и \dt fansy.*
ИШ не скачался положи igate_100.0-765_amd64.deb в /opt/bj/src/dist/ish/ и перезапусти install.sh
Валидата не установлена это нормально на старте — заказывай у НРД, потом install-validata.sh
Не определилась ОС поддерживаются: Astra, Debian, Ubuntu. Для других — открой issue

Health-check всё сразу:

sudo bash /opt/bj/src/deploy/astra/healthcheck.sh

Полный путь от чистой ВМ до прохождения теста с роботом MOEX МОСТ

Этап Что делается Срок
1. Поднять Astra Linux ВМ у инфра-команды 1 день
2. Запустить install.sh автоматически 5-10 мин
3. Запросить Валидату в НРД письмо в soed@nsd.ru 1-3 дня ожидания
4. Получить сертификат УЦ МБ заявка в ca.moex.com 1-2 недели ожидания
5. Подать заявку на TEST3 форма на сайте НРД 2-5 дней
6. Установить Валидату install-validata.sh 5 мин
7. Импортировать сертификат GUI Валидаты, экспорт в системное хранилище 15 мин
8. Настроить ИШ GUI ИШ, создать канал WSL 30 мин
9. Привязать bj-server к ИШ /admin/setup через UI 5 мин
10. Прогнать тест с роботом /admin/setup → кнопка 1 мин

Итог: 2-3 недели от старта до зелёного теста с роботом MOEX МОСТ. На нашей стороне всё уже готово — задержки только во внешних запросах.