Образ: установка без вопросов (DHCP, весь диск) с одним подтверждением стирания; приветствие на консоли не перерисовывается без нужды
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014FsEKyJrYF69Cj9ZXzFLRi
This commit is contained in:
@@ -88,7 +88,8 @@ xorriso -osirrox on -indev "$SRC" -extract /boot/grub/grub.cfg "$WORK/grub/grub.
|
||||
echo "loadfont unicode"
|
||||
echo "menuentry --hotkey=b 'Install Bridge&Join $VERSION (Ubuntu 22.04)' {"
|
||||
echo " set gfxpayload=keep"
|
||||
echo " linux /casper/vmlinuz autoinstall ds=nocloud\;s=/cdrom/nocloud/ ---"
|
||||
# без «autoinstall» в параметрах установщик один раз спросит подтверждение перед стиранием диска
|
||||
echo " linux /casper/vmlinuz ds=nocloud\;s=/cdrom/nocloud/ ---"
|
||||
echo " initrd /casper/initrd"
|
||||
echo "}"
|
||||
# пункт с ядром HWE убираем — его файлы из образа удаляются
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
#cloud-config
|
||||
# Автоустановка Ubuntu 22.04 для образа Bridge&Join (deploy/iso/build-iso-ubuntu.sh).
|
||||
# Спрашиваются только сеть (если DHCP нет — задать вручную) и диск (подтверждение стирания).
|
||||
# Вопросов нет: сеть — DHCP (нет DHCP — установка идёт без сети: обновления и пакеты bj уже в образе),
|
||||
# диск — весь первый диск целиком. Единственный вопрос — подтверждение «Continue with autoinstall?»
|
||||
# перед стиранием диска: его задаёт установщик Ubuntu, потому что в меню загрузки нет параметра
|
||||
# autoinstall (защита от случайной загрузки с образа на машине с данными).
|
||||
# Учётная запись root_bj (sudo) создаётся с неизвестным никому паролем — настоящие пароли
|
||||
# root_bj и user_bj задаёт bj-firstboot при первой загрузке и показывает один раз.
|
||||
autoinstall:
|
||||
version: 1
|
||||
interactive-sections:
|
||||
- network
|
||||
- storage
|
||||
locale: ru_RU.UTF-8
|
||||
keyboard:
|
||||
layout: us,ru
|
||||
|
||||
@@ -20,12 +20,15 @@ if [ -r "$SETUP" ]; then
|
||||
import json,sys
|
||||
try:
|
||||
d=json.load(open(sys.argv[1])); l=d.get("license",{})
|
||||
print("да" if l.get("key") else "нет", l.get("last_msg","")[:60])
|
||||
# только устойчивое состояние: сообщение о продлении меняется каждые 15 минут, и экран
|
||||
# перерисовывался бы (перезапуск входа на консоли) без нужды
|
||||
print("да" if l.get("key") else "нет")
|
||||
except Exception: print("")
|
||||
PY
|
||||
)
|
||||
fi
|
||||
{
|
||||
printf '\033[H\033[2J' # очистить экран: при повторном показе приглашения текст не копится
|
||||
printf '\n ┌────────────────────────────────────────────────────────────────┐\n'
|
||||
printf ' │ Bridge&Join (bj) — шлюз переводов ценных бумаг M2M / НРД │\n'
|
||||
printf ' └────────────────────────────────────────────────────────────────┘\n'
|
||||
@@ -50,7 +53,7 @@ fi
|
||||
else
|
||||
printf ' Состояние: bj работает. Вход в веб-интерфейс:\n'; url /admin
|
||||
case "$lic" in
|
||||
да*) printf ' Лицензия: %s\n' "${lic#да }";;
|
||||
да*) printf ' Лицензия: ключ продукта введён (подробности — «Настройка → Лицензия»).\n';;
|
||||
*) printf ' Лицензия НЕ АКТИВИРОВАНА: введите ключ продукта в «Настройка → Лицензия».\n';;
|
||||
esac
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user