# Миграция 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. Экспорт со старой ВМ (РЕД ОС) ```bash # на старой ВМ 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) ```bash # на новой 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. Перенос данных ```bash # перекинуть архив на новую ВМ 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. Проверка ```bash sudo bash /opt/bj/src/deploy/astra/healthcheck.sh ``` Открыть в браузере: `http://10.10.10.23:8080/admin/` ### Этап 6. Установка ИШ (после получения дистрибутивов от НРД) ```bash # 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. Первый тест с роботом ```bash # Через 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`