bac55cbdfd
Поскольку Интеграционный шлюз НРД (ИШ) официально работает только на 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%
110 lines
5.1 KiB
Bash
Executable File
110 lines
5.1 KiB
Bash
Executable File
#!/bin/bash
|
||
# install-ish.sh — установка ПО «Интеграционный шлюз НРД» (ИШ) на Astra Linux.
|
||
#
|
||
# Документ-источник: DOC/ruk_install_ish_2025_11_10.pdf (раздел 7.3.2).
|
||
#
|
||
# Пред-требования:
|
||
# 1. ОС: Astra Linux SE 1.6 или 1.7
|
||
# 2. УСТАНОВЛЕНА Валидата CSP + АПК Валидата Клиент L (см. install-validata.sh)
|
||
# 3. Корневой сертификат УЦ МБ загружен в Справочник сертификатов
|
||
# 4. Пользовательский сертификат экспортирован в системное хранилище
|
||
#
|
||
# Что делает скрипт:
|
||
# 1. Проверяет наличие Валидаты
|
||
# 2. Устанавливает igate_*.deb через dpkg
|
||
# 3. Создаёт каталог настроек ~/igate
|
||
# 4. Подсказывает следующие шаги (запуск настройщика каналов)
|
||
|
||
set -euo pipefail
|
||
|
||
DEB_PATH="${1:-}"
|
||
|
||
log() { echo -e "\033[1;34m[ish-install]\033[0m $*"; }
|
||
warn() { echo -e "\033[1;33m[ish-install WARN]\033[0m $*" >&2; }
|
||
fail() { echo -e "\033[1;31m[ish-install FAIL]\033[0m $*" >&2; exit 1; }
|
||
|
||
# ---- 1. Поиск .deb ----
|
||
if [ -z "$DEB_PATH" ]; then
|
||
# Поиск в стандартных местах
|
||
for candidate in \
|
||
./dist/ish/igate_*_amd64.deb \
|
||
/opt/bj/src/dist/ish/igate_*_amd64.deb \
|
||
~/Downloads/igate_*_amd64.deb \
|
||
/tmp/igate_*_amd64.deb; do
|
||
if [ -f "$candidate" ]; then
|
||
DEB_PATH="$candidate"
|
||
break
|
||
fi
|
||
done
|
||
fi
|
||
if [ -z "$DEB_PATH" ] || [ ! -f "$DEB_PATH" ]; then
|
||
fail "Не найден .deb пакет ИШ. Скачайте с https://www.nsd.ru/workflow/system/programs/web-service/ и передайте путь:
|
||
sudo bash $0 /path/to/igate_100.0-765_amd64.deb"
|
||
fi
|
||
log "Дистрибутив ИШ: $DEB_PATH"
|
||
|
||
# ---- 2. Проверка ОС ----
|
||
if [ -r /etc/astra_version ]; then
|
||
log "Astra Linux: $(cat /etc/astra_version)"
|
||
else
|
||
warn "Это не Astra Linux. ИШ под Astra Linux может не запуститься на других ОС."
|
||
warn "Продолжить? (y/N)"
|
||
read -r REPLY < /dev/tty
|
||
[ "$REPLY" = "y" ] || exit 1
|
||
fi
|
||
|
||
# ---- 3. Проверка Валидаты ----
|
||
log "Проверка СКЗИ Валидата CSP..."
|
||
VAL_FOUND=0
|
||
for path in /opt/Validata /opt/validata-csp /opt/Validata-CSP /usr/local/Validata; do
|
||
[ -d "$path" ] && { log " ✓ Валидата найдена в $path"; VAL_FOUND=1; break; }
|
||
done
|
||
if [ "$VAL_FOUND" = 0 ]; then
|
||
warn "Валидата CSP не найдена. ИШ всё равно поставится, но не запустится без СКЗИ."
|
||
warn "Получите дистрибутив Валидаты у НРД (soed@nsd.ru) и поставьте через install-validata.sh."
|
||
warn "Продолжить установку ИШ? (y/N)"
|
||
read -r REPLY < /dev/tty
|
||
[ "$REPLY" = "y" ] || exit 1
|
||
fi
|
||
|
||
# ---- 4. dpkg -i ----
|
||
log "Установка ИШ через dpkg..."
|
||
[ "$EUID" -eq 0 ] || fail "Запускать от root (sudo bash $0)"
|
||
dpkg -i "$DEB_PATH" 2>&1 | tee /tmp/igate-install.log || {
|
||
warn "dpkg -i вернул ошибку, пытаюсь починить зависимости через apt-get install -f"
|
||
apt-get install -f -y
|
||
dpkg -i "$DEB_PATH"
|
||
}
|
||
|
||
# ---- 5. Проверка ----
|
||
if command -v igate >/dev/null 2>&1; then
|
||
log "✓ ИШ установлен: $(which igate)"
|
||
elif [ -x /opt/igate/igate ]; then
|
||
log "✓ ИШ установлен в /opt/igate/"
|
||
else
|
||
warn "Бинарник igate не нашёл в PATH. Возможно установлен в /opt/igate или ~/igate."
|
||
warn "Проверьте: dpkg -L igate | grep -E 'bin|igate$'"
|
||
fi
|
||
|
||
# ---- 6. Финал ----
|
||
echo
|
||
echo "================================================================"
|
||
echo " ИШ установлен"
|
||
echo "================================================================"
|
||
echo
|
||
echo " Следующие шаги (по DOC/ruk_install_ish_2025_11_10.pdf раздел 10):"
|
||
echo " 1. Запустить ИШ в GUI: igate & (или через меню Пуск/Astra)"
|
||
echo " 2. Настройки БД → PostgreSQL (URL/логин/пароль из bj-server)"
|
||
echo " 3. Создать канал WSL → URL https://gost.nsd.ru/onyxt3/WslService (TEST3)"
|
||
echo " 4. Указать сертификат УЦ МБ из системного хранилища"
|
||
echo " 5. Активировать ИШ как сервис:"
|
||
echo " sudo systemctl enable --now igate"
|
||
echo
|
||
echo " REST API ИШ (для bj-server):"
|
||
echo " http://localhost:8090 (порт по умолчанию — см. настройки ИШ)"
|
||
echo
|
||
echo " После настройки канала в ИШ: открыть"
|
||
echo " http://<этот-сервер>:8080/admin/setup → раздел «Интеграционный шлюз НРД»"
|
||
echo " и указать URL ИШ + имя канала."
|
||
echo "================================================================"
|