d8dee07213
- 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>
43 lines
2.1 KiB
Bash
Executable File
43 lines
2.1 KiB
Bash
Executable File
#!/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
|