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%
90 lines
4.3 KiB
Bash
Executable File
90 lines
4.3 KiB
Bash
Executable File
#!/bin/bash
|
||
# install-validata.sh — установка СКЗИ «Валидата CSP» + АПК «Валидата Клиент L»
|
||
# для работы Интеграционного шлюза НРД на Astra Linux.
|
||
#
|
||
# ВАЖНО: дистрибутив Валидаты не выложен публично. Получается по запросу:
|
||
# - НРД: soed@nsd.ru
|
||
# - МБ: pki@moex.com
|
||
# В письме указать: «Запрос дистрибутива СКЗИ Валидата CSP для Linux +
|
||
# временной лицензии для подключения к ЭДО НРД в рамках MOEX МОСТ M2M.»
|
||
#
|
||
# Скрипт ожидает что архив с дистрибутивом уже скачан и лежит:
|
||
# dist/validata/<любые>.deb
|
||
# или передан как первый аргумент.
|
||
#
|
||
# Запуск:
|
||
# sudo bash deploy/astra/install-validata.sh
|
||
# sudo bash deploy/astra/install-validata.sh /path/to/validata-csp.deb
|
||
|
||
set -euo pipefail
|
||
|
||
log() { echo -e "\033[1;34m[validata-install]\033[0m $*"; }
|
||
warn() { echo -e "\033[1;33m[validata-install WARN]\033[0m $*" >&2; }
|
||
fail() { echo -e "\033[1;31m[validata-install FAIL]\033[0m $*" >&2; exit 1; }
|
||
|
||
[ "$EUID" -eq 0 ] || fail "Запускать от root"
|
||
|
||
SEARCH_PATH="${1:-./dist/validata}"
|
||
|
||
if [ -f "$SEARCH_PATH" ] && [ "${SEARCH_PATH##*.}" = "deb" ]; then
|
||
# Передан конкретный файл
|
||
DEBS=( "$SEARCH_PATH" )
|
||
elif [ -d "$SEARCH_PATH" ]; then
|
||
mapfile -t DEBS < <(find "$SEARCH_PATH" -maxdepth 2 -name '*.deb' 2>/dev/null | sort)
|
||
else
|
||
fail "Не найден дистрибутив Валидаты. Положи .deb пакеты в dist/validata/ или передай путь аргументом.
|
||
|
||
Если у тебя ещё нет дистрибутива — запроси у НРД:
|
||
Email: soed@nsd.ru (или pki@moex.com)
|
||
Тема: Запрос дистрибутива Валидата CSP для Linux
|
||
Текст: Просим предоставить дистрибутив СКЗИ Валидата CSP v.6 для Linux
|
||
(Astra Linux SE 1.7) + временную лицензию для подключения к
|
||
ЭДО НРД через ПО Интеграционный шлюз в рамках сервиса
|
||
MOEX МОСТ M2M (см. инструкцию nsd.ru/workflow/system/programs/web-service/).
|
||
Реквизиты организации: <ИНН, ОГРН, контактное лицо>.
|
||
"
|
||
fi
|
||
|
||
if [ "${#DEBS[@]}" = 0 ]; then
|
||
fail "В каталоге $SEARCH_PATH не найдено ни одного .deb пакета"
|
||
fi
|
||
|
||
log "Найдено ${#DEBS[@]} пакетов Валидаты:"
|
||
for f in "${DEBS[@]}"; do
|
||
echo " $f"
|
||
done
|
||
|
||
log "Установка через dpkg..."
|
||
for f in "${DEBS[@]}"; do
|
||
log " $f"
|
||
dpkg -i "$f" || {
|
||
warn " → пытаюсь починить зависимости"
|
||
apt-get install -f -y
|
||
dpkg -i "$f"
|
||
}
|
||
done
|
||
|
||
# Проверка
|
||
log "Проверка установки..."
|
||
VAL_FOUND=0
|
||
for path in /opt/Validata /opt/validata-csp /opt/Validata-CSP; do
|
||
[ -d "$path" ] && { log " ✓ Валидата в $path"; VAL_FOUND=1; }
|
||
done
|
||
if [ "$VAL_FOUND" = 0 ]; then
|
||
warn "Каталог Валидаты не нашёл — проверь dpkg -L <имя-пакета>"
|
||
fi
|
||
|
||
echo
|
||
echo "================================================================"
|
||
echo " Валидата установлена"
|
||
echo "================================================================"
|
||
echo " Следующие шаги:"
|
||
echo " 1. Запустить Справочник сертификатов АПК Валидата Клиент"
|
||
echo " (GUI приложение)"
|
||
echo " 2. Загрузить корневой сертификат УЦ Московской Биржи"
|
||
echo " (взять у УЦ МБ — ca.moex.com — для своей организации)"
|
||
echo " 3. Импортировать пользовательский сертификат с приватным ключом"
|
||
echo " 4. Меню Сервис → Экспортировать сертификаты в системное хранилище"
|
||
echo " 5. Установить ИШ: sudo bash deploy/astra/install-ish.sh"
|
||
echo "================================================================"
|