Поскольку Интеграционный шлюз НРД (ИШ) официально работает только на 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%
Миграция 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 до/после |
Если что-то сломалось
- Логи bj-server:
journalctl -u bj-server -f - Файл лога:
tail -f /var/log/bj/bj-server.log - Логи ИШ:
journalctl -u igate -f(если запущен как systemd) - Health-check:
sudo bash deploy/astra/healthcheck.sh - Поддержка НРД по ИШ/Валидате:
soed@nsd.ru, по форматам M2M:M2MOST@nsd.ru