6e503433d4
Переосмысление установщика по фидбеку: установщик должен делать чистую
установку «с нуля», а не миграцию. От пользователя требуется одна
команда и больше ничего:
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 обновлён: установщик описан как «одна команда» вместо
«миграция», % готовности не изменился (но качество улучшилось).
146 lines
8.7 KiB
Markdown
146 lines
8.7 KiB
Markdown
# Bridge-and-Join-s — установка одной командой
|
|
|
|
## TL;DR — на свежей Astra Linux / Debian / Ubuntu ВМ
|
|
|
|
```bash
|
|
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 пакет:
|
|
```bash
|
|
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` принимает флаги:
|
|
|
|
```bash
|
|
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 всё сразу:
|
|
```bash
|
|
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 МОСТ.** На нашей стороне всё уже готово — задержки только во внешних запросах.
|