Files
Bridge-and-Join-s/deploy/astra
fontvielle bac55cbdfd feat(deploy): полный набор скриптов миграции на Astra Linux
Поскольку Интеграционный шлюз НРД (ИШ) официально работает только на
Astra Linux SE 1.6/1.7 (RPM-версии нет, дистрибутив только .deb для
Debian-based), мигрируем инфраструктуру с РЕД ОС на Astra. Это
заодно проверит «чистую» установку с нуля.

deploy/astra/install.sh — установщик bj-server для свежей Astra ВМ:
- проверка ОС (Astra Linux SE)
- apt-зависимости (curl, git, podman, podman-compose, postgresql-client)
- скачивание Go 1.24+ с go.dev, если нет
- системный пользователь bj + каталоги /opt/bj /var/lib/bj /var/log/bj
- git clone репо в /opt/bj/src
- go build бинарника /opt/bj/bj-server
- podman-compose up -d postgres + накат всех миграций
- systemd unit с безопасными ограничениями (NoNewPrivileges,
  ProtectSystem=strict, ReadWritePaths только нужные, PrivateTmp)
- автозапуск + проверка systemctl is-active
- финальная подсказка с URL'ами

deploy/astra/install-validata.sh — установщик Валидата CSP:
- ищет .deb пакеты в dist/validata/ или принимает путь аргументом
- если пакетов нет — печатает текст письма для запроса дистрибутива
  у НРД (soed@nsd.ru) или МБ (pki@moex.com)
- dpkg -i + apt-get install -f для зависимостей
- проверка установки в /opt/Validata*

deploy/astra/install-ish.sh — установщик ИШ:
- ищет igate_*_amd64.deb в стандартных местах (dist/ish/, ~/Downloads и т.п.)
- проверяет наличие Валидаты (предупреждает если нет)
- dpkg -i igate_*.deb
- подсказывает следующие шаги (запуск GUI, настройка БД и канала WSL)

deploy/astra/migrate-from-redos.sh — экспорт со старой РЕД ОС ВМ:
- pg_dump БД bj (через podman exec или напрямую)
- копия ~/.bj/setup.json (ищется в нескольких стандартных путях)
- последние 7 дней логов из /var/log/bj и journalctl
- meta.txt с версиями ОС/пакетов
- README.md с инструкциями восстановления на новой ВМ
- итоговый тарбол /tmp/bj-migration-YYYY-MM-DD-HHMM.tar.gz

deploy/astra/healthcheck.sh — проверка после установки:
- 8 разделов: ОС, пользователь/каталоги, systemd, HTTP, PostgreSQL,
  Валидата, ИШ, сетевые порты
- цветной вывод OK/WARN/FAIL для каждого пункта

deploy/astra/README.md — пошаговая инструкция миграции из 8 этапов:
- подготовка (Astra ВМ, доступ root, запрос Валидаты у НРД)
- экспорт со старой ВМ
- install.sh на новой ВМ
- restore БД и настроек
- healthcheck
- install-validata.sh + импорт сертификатов УЦ МБ
- install-ish.sh + настройка канала WSL
- первый тест с роботом MOEX МОСТ
- раздел «что НЕ переносится автоматически»
- раздел «откат» (старая ВМ работает до подтверждения миграции)

REPORT.md обновлён:
- общая готовность 72% → 75%
- готовность к роботу 85% → 88%
- новая строка «Установщик/мигратор на Astra Linux: 100% »
- «Установка ИШ на наш стенд» поднялась с 0% до 30%
2026-05-14 17:37:10 +03:00
..

Миграция Bridge-and-Join-s на Astra Linux

Полный набор скриптов для чистой установки с нуля на свежей Astra Linux Special Edition 1.6/1.7 ВМ и переноса данных со старой РЕД ОС.

Зачем мигрируем

Интеграционный шлюз НРД (ИШ) — единственный поддерживаемый канал к сервису MOEX МОСТ — официально работает только на Astra Linux (дистрибутив igate_100.0-765_amd64.deb). РЕД ОС в списке поддерживаемых ОС отсутствует, RPM-версии ИШ нет. Поэтому всю инфраструктуру переводим на Astra.

Кроме того, ИШ требует СКЗИ «Валидата CSP» (НЕ КриптоПро) — этот переход тоже происходит в рамках миграции.

Файлы в этом каталоге

Файл Где запускать Назначение
install.sh новая Astra ВМ (root) Установка bj-server (зависимости, Go, podman, postgres, бинарник, systemd)
install-validata.sh новая Astra ВМ (root) Установка СКЗИ Валидата CSP + АПК Валидата Клиент L (после получения дистрибутива от НРД)
install-ish.sh новая Astra ВМ (root) Установка ИШ (dpkg -i igate_*.deb)
migrate-from-redos.sh старая РЕД ОС ВМ Экспорт состояния (БД, настройки, логи) в архив для переноса
healthcheck.sh новая Astra ВМ Проверка состояния всех компонентов после установки

Пошаговый план миграции

Этап 1. Подготовка

  • Поднять чистую Astra Linux SE 1.7 ВМ (рекомендую 10.10.10.23)
  • Доступ root по SSH
  • Прямой выход в интернет (для скачивания Go и зависимостей)
  • Параллельно отправить письмо в НРД (soed@nsd.ru) с запросом дистрибутива Валидаты под Linux + временной лицензии

Этап 2. Экспорт со старой ВМ (РЕД ОС)

# на старой ВМ
ssh fontvielle@10.10.10.22
cd ~/Bridge-and-Join-s
sudo bash deploy/astra/migrate-from-redos.sh
# создаст /tmp/bj-migration-YYYY-MM-DD-HHMM.tar.gz

Этап 3. Установка bj-server на новую ВМ (Astra Linux)

# на новой Astra ВМ
ssh root@10.10.10.23
# вариант А — через git
curl -sSL https://git.zetit.ru/zuevav/Bridge-and-Join-s/raw/main/deploy/astra/install.sh \
    | sudo bash

# вариант Б — локально (если уже скопировал репо)
cd /opt/bj/src
sudo bash deploy/astra/install.sh

Этап 4. Перенос данных

# перекинуть архив на новую ВМ
scp /tmp/bj-migration-*.tar.gz root@10.10.10.23:/tmp/

# на новой ВМ
cd /tmp
tar -xzf bj-migration-*.tar.gz
cd bj-migration-*

# восстановить БД
podman exec -i bj-postgres psql -U bj -d bj < bj.sql

# восстановить настройки
sudo cp setup.json /var/lib/bj/.bj/setup.json
sudo chown bj:bj /var/lib/bj/.bj/setup.json
sudo chmod 0600 /var/lib/bj/.bj/setup.json

sudo systemctl restart bj-server

Этап 5. Проверка

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

Открыть в браузере: http://10.10.10.23:8080/admin/

Этап 6. Установка ИШ (после получения дистрибутивов от НРД)

# 1. Валидата (когда придёт от НРД)
sudo bash deploy/astra/install-validata.sh /path/to/validata-csp.deb

# 2. Импорт сертификатов УЦ МБ через GUI Справочника Валидаты:
#    - корневой сертификат УЦ МБ
#    - пользовательский сертификат с приватным ключом
#    - Сервис → Экспортировать в системное хранилище

# 3. Сам ИШ (дистрибутив уже скачан в dist/ish/)
sudo bash deploy/astra/install-ish.sh

# 4. Настроить канал WSL в ИШ (GUI):
#    URL: https://gost.nsd.ru/onyxt3/WslService (TEST3)
#    Сертификат: из системного хранилища
#    БД: PostgreSQL (тот же что и bj-server)

# 5. Запустить ИШ как сервис
sudo systemctl enable --now igate

Этап 7. Привязка bj-server к ИШ

В админке http://10.10.10.23:8080/admin/setup → «Интеграционный шлюз НРД»:

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

Этап 8. Первый тест с роботом

# Через UI: /admin/setup → «Тестовый прогон сквозной заявки»
# Это отправит заявку с ReceiverCode=MC0012500000 и DocumentSeries=2001
# → робот НРД ответит «Принять все бумаги» через ~30 сек

Откат

Старая РЕД ОС ВМ продолжает работать до подтверждения миграции. Если что-то пойдёт не так — просто переключаем DNS/Nginx обратно на 10.10.10.22.

Что НЕ переносится автоматически

Что Почему Что делать
КриптоПро CSP На Astra используется Валидата Получить дистрибутив Валидаты у НРД, поставить заново
Сертификаты в /var/opt/cprocsp/keys/ Формат КриптоПро ≠ формат Валидаты Сертификат УЦ МБ — получить заново или экспортировать с КриптоПро и импортировать в Валидата (если совместимый формат)
Локальные кастомизации systemd install.sh ставит свой unit Сравнить /etc/systemd/system/bj-server.service до/после

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

  1. Логи bj-server: journalctl -u bj-server -f
  2. Файл лога: tail -f /var/log/bj/bj-server.log
  3. Логи ИШ: journalctl -u igate -f (если запущен как systemd)
  4. Health-check: sudo bash deploy/astra/healthcheck.sh
  5. Поддержка НРД по ИШ/Валидате: soed@nsd.ru, по форматам M2M: M2MOST@nsd.ru