ИШ обновляется через сервер лицензий вместе с bj; наглядный ход установки ИШ

- Дистрибутив ИШ — компонент выпуска igate-dist (версия = версия ИШ). В выпуск
  попадает только одобренный архив: deploy/release/igate-approved (версия и
  sha256), сборка сверяет контрольную сумму. Клиент получает его обновлением;
  bj-server после обновления (и при запуске) сам обновляет ИШ, если на сервере
  он старее; итог — событие в «Новостях». Настройки, каналы и база ИШ
  сохраняются, прежняя версия — в /var/backups.
- Установка «с сервера» берёт самый новый проверенный дистрибутив: с образа или из
  обновления. С сайта НРД — только в режиме разработки.
- Большие файлы: одна прежняя копия вместо пяти; предел скачивания — по размеру.
- Ход установки ИШ — этапами: пройденные, текущий («идёт 0:41 · обычно до 1:30»,
  дольше обычного — предупреждение), журнал под раскрытием; кнопка на время
  установки выключена.
- Установщик: уникальные этапы; igate-cli и сессия ключницы с принудительным
  завершением (timeout -k); зависшая установка (ход не менялся 15 минут)
  снимается повторным запуском; служба установки — не дольше 40 минут.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
zuevav
2026-10-06 17:42:54 +03:00
parent 920c030ca5
commit 648a5ae05f
11 changed files with 196 additions and 42 deletions
+14
View File
@@ -96,6 +96,20 @@ if [ -f "$JAR" ]; then
cver crypto-service.jar CRYPTO_VERSION "$(sha256sum "$JAR" | cut -d' ' -f1)" > "$DIST/crypto-service.jar.version"
fi
echo " криптосервис: $(cat "$DIST/crypto-service.jar.version" 2>/dev/null || echo нет)"
# Дистрибутив ИШ — только версия, проверенная ZETIT вместе с bj: deploy/release/igate-approved («версия sha256»).
# Архив НРД — из IGATE_ZIP (по умолчанию ~/ish-upgrade/igate-<версия через дефис>-amd64.zip); контрольная
# сумма должна совпасть с одобренной. Версия компонента = версия ИШ: клиенты получают его с обновлением,
# bj-server сам обновляет ИШ, если на сервере он старее.
IGA="$ROOT/deploy/release/igate-approved"
if [ -f "$IGA" ]; then
read -r IG_VER IG_SHA < "$IGA"
IG_ZIP=${IGATE_ZIP:-$HOME/ish-upgrade/igate-$(echo "$IG_VER" | tr . -)-amd64.zip}
[ -f "$IG_ZIP" ] || { echo "нет дистрибутива ИШ $IG_VER: $IG_ZIP (IGATE_ZIP=…)"; exit 1; }
[ "$(sha256sum "$IG_ZIP" | cut -d' ' -f1)" = "$IG_SHA" ] || { echo "дистрибутив ИШ $IG_ZIP не совпадает с одобренным (deploy/release/igate-approved)"; exit 1; }
cp "$IG_ZIP" "$DIST/igate-dist"
echo "$IG_VER" > "$DIST/igate-dist.version"
echo " ИШ: $IG_VER (одобренный дистрибутив)"
fi
go run ./cmd/bj-release build -dir "$DIST" -version "$VERSION" -channel "$CHANNEL" -key "$KEY" -keyid release -out "$DIST/manifest.json"
# версии и отпечатки этого релиза — в репозиторий (закоммитить вместе с релизом)
mkdir -p "$(dirname "$CV_STATE")" && mv "$CV_NEW" "$CV_STATE"