diff --git a/deploy/iso/build-iso-ubuntu.sh b/deploy/iso/build-iso-ubuntu.sh index e4702b4..9711991 100755 --- a/deploy/iso/build-iso-ubuntu.sh +++ b/deploy/iso/build-iso-ubuntu.sh @@ -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 убираем — его файлы из образа удаляются diff --git a/deploy/iso/ubuntu/user-data.tmpl b/deploy/iso/ubuntu/user-data.tmpl index 0d22326..398d2e7 100644 --- a/deploy/iso/ubuntu/user-data.tmpl +++ b/deploy/iso/ubuntu/user-data.tmpl @@ -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 diff --git a/deploy/linux/sbin/bj-welcome b/deploy/linux/sbin/bj-welcome index 36c5142..8b5e3f4 100755 --- a/deploy/linux/sbin/bj-welcome +++ b/deploy/linux/sbin/bj-welcome @@ -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