feat(iso): образ Bridge&Join на основе Debian 13 netinst
- deploy/iso/build-iso.sh: пересборка официального netinst (xorriso, загрузочные записи BIOS и UEFI сохраняются), пункт по умолчанию «Установить Bridge&Join», текстовый установщик - preseed.cfg: русская локаль, Москва, DHCP, SSH и пакеты для bj; спрашиваются только пароли, диск и подтверждение стирания - bj-firstboot: при первой загрузке на экране сервера спрашивает ключ продукта и запускает bj-installer; адрес первичной настройки и код остаются на экране входа Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Executable
+42
@@ -0,0 +1,42 @@
|
||||
#!/bin/bash
|
||||
# Первая загрузка сервера, установленного с образа Bridge&Join: на экране сервера спрашивает ключ
|
||||
# продукта и запускает bj-installer. После успешной установки служба выключается; адрес первичной
|
||||
# настройки и одноразовый код остаются на экране входа (/etc/issue.d/bj-setup.issue).
|
||||
set -u
|
||||
MARK=/var/lib/bj/.bj/installed-from-iso
|
||||
SERVER=https://lic.zetit.ru
|
||||
CHANNEL=stable
|
||||
[ -s /etc/bj/channel ] && CHANNEL=$(tr -d ' \n' < /etc/bj/channel)
|
||||
|
||||
finish() {
|
||||
mkdir -p "$(dirname "$MARK")" && date -Iseconds > "$MARK"
|
||||
systemctl disable bj-firstboot.service >/dev/null 2>&1
|
||||
}
|
||||
|
||||
clear
|
||||
printf '\n Bridge&Join: установка на сервер\n ────────────────────────────────────────────────\n\n'
|
||||
printf ' Debian установлен. Осталось установить bj.\n'
|
||||
printf ' Нужен ключ продукта (BJ-XXXX-XXXX-XXXX): он есть в портале клиента %s/portal/\n\n' "$SERVER"
|
||||
|
||||
for i in $(seq 1 60); do
|
||||
curl -fsS -m 5 -o /dev/null "$SERVER/healthz" && break
|
||||
[ "$i" = 1 ] && printf ' Жду сеть и связь с %s…\n' "$SERVER"
|
||||
sleep 2
|
||||
done
|
||||
|
||||
while true; do
|
||||
read -r -p " Ключ продукта (пусто — установить позже): " CODE
|
||||
CODE=$(printf '%s' "$CODE" | tr -d ' ' | tr '[:lower:]' '[:upper:]')
|
||||
if [ -z "$CODE" ]; then
|
||||
printf '\n Установка bj отложена. Позже выполните: sudo bj-installer install --code КЛЮЧ-ПРОДУКТА\n\n'
|
||||
finish
|
||||
sleep 3
|
||||
exit 0
|
||||
fi
|
||||
if /usr/local/sbin/bj-installer install --code "$CODE" --server "$SERVER" --channel "$CHANNEL"; then
|
||||
finish
|
||||
read -r -p " Нажмите Enter, чтобы перейти к экрану входа. " _
|
||||
exit 0
|
||||
fi
|
||||
printf '\n Установка не завершилась. Проверьте ключ продукта и сеть и попробуйте ещё раз.\n\n'
|
||||
done
|
||||
Reference in New Issue
Block a user