Bug 49907 - Добавить пользовательские initinstall.d скрипты
Summary: Добавить пользовательские initinstall.d скрипты
Status: NEW
Alias: None
Product: Sisyphus
Classification: Development
Component: installer (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Антон Мидюков
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-05 09:15 MSK by Alexander Shemetov
Modified: 2024-04-05 19:35 MSK (History)
6 users (show)

See Also:


Attachments
35-computername.sh (760 bytes, application/x-shellscript)
2024-04-05 17:39 MSK, Leonid Krivoshein
no flags Details
35-excludedisks.sh (3.80 KB, application/x-shellscript)
2024-04-05 17:41 MSK, Leonid Krivoshein
no flags Details
Возможный вариант решения (2.56 KB, patch)
2024-04-05 18:22 MSK, Leonid Krivoshein
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alexander Shemetov 2024-04-05 09:15:24 MSK
https://www.altlinux.org/Autoinstall

Несправедливо забыли добавить поддержку в install-scripts.tar скриптов для initinstall.d, они бы как раз могли покрыть 99% хотелок и отсутствия гибкости инсталлера хотя бы своими bash скриптами...

preinstall.d и postinstall.d конечно круто, но это не то. Они не позволяют вмешаться в процесс до начала установки системы, например, в разметку диска. Когда хочется иметь свою логику для разных систем, а не полагаться зашитую в образ и в один единственный файл vm-profile.scm.
Comment 1 Антон Мидюков 2024-04-05 09:21:22 MSK
Проблема в том, что install-scripts.tar вытягивается initinstall скриптом. И его перенести на более раннюю стадию также нельзя, потому что ещё одним initinstall скриптом настраивается сеть.
Comment 2 Антон Мидюков 2024-04-05 09:24:04 MSK
vm/profiles.scm всегда было можно подложить свой:
https://www.altlinux.org/Autoinstall
Comment 3 Alexander Shemetov 2024-04-05 10:51:33 MSK
(Ответ для Антон Мидюков на комментарий #2)
> vm/profiles.scm всегда было можно подложить свой:
> https://www.altlinux.org/Autoinstall

Можно.
Но если у меня в vm-profile.sсm прописано два и более профилей, как мне потом его выбрать в autoinstall.scm ? Проблема.
Я сейчас использую два отдельных каталога metadata на сервере, то есть на каждый профиль свой отдельный metadata и в каждом свой autoinstall.scm и vm-profile.scm. Это неудобно. В других дистрибутивах обычно инсталлер позволяет либо запустить некий скрипт в init скриптах, чтобы подправить конфиг как нужно, либо в рамках конфигурации инсталлера есть возможность использовать условия. Ни того, ни другого тут я не вижу, к сожалению.

Также в /pkg-install сильно не хватает установки пакета не из lists, а просто произвольный пакет указать, например, package "htop vim-console" и тп.

Вообще, если честно, все эти вещи с хранением скриптов и списка пакетов в tar не очень удобно использовать... Распакуй, исправь, запакуй...
Comment 4 Alexander Shemetov 2024-04-05 14:16:58 MSK
Нашёл, казалось бы, отличные и простой вариант /postinstall/laststate для установки пакета...

("/postinstall/laststate" run "exec_chroot apt-get install -y htop")

Но и он не работает, потому что перед 99-zz.. отрабатывает 99-online-repo.sh, который отключает репу с CDROM. Жаль.
Comment 5 Alexander Shemetov 2024-04-05 15:19:35 MSK
(Ответ для Антон Мидюков на комментарий #1)
> Проблема в том, что install-scripts.tar вытягивается initinstall скриптом. И
> его перенести на более раннюю стадию также нельзя, потому что ещё одним
> initinstall скриптом настраивается сеть.

загрузка скриптов выполняется в 27-metadata-install-scripts.sh, не вижу проблем запускать скрипт хоть сразу после этого скрипта
Comment 6 Leonid Krivoshein 2024-04-05 16:45:58 MSK
(In reply to Антон Мидюков from comment #1)
> Проблема в том, что install-scripts.tar вытягивается initinstall скриптом. И
> его перенести на более раннюю стадию также нельзя, потому что ещё одним
> initinstall скриптом настраивается сеть.
Если немного переработать цикл запуска скриптов initinstall.d, можно такую поддержку добавить, избавив от необходимости перепаковки ISO со сквошом. Попробую изобразить...
Comment 7 Leonid Krivoshein 2024-04-05 17:39:35 MSK
Created attachment 15810 [details]
35-computername.sh

Скрипт для автоматического присвоения имени хосту.
Comment 8 Leonid Krivoshein 2024-04-05 17:41:25 MSK
Created attachment 15811 [details]
35-excludedisks.sh

Скрипт для исключения всех дисков, кроме заданного через /proc/cmdline, который будет найден по указанному размеру.
Comment 9 Leonid Krivoshein 2024-04-05 17:45:36 MSK
Для начала прицепил пару скриптов из реальной практики. Нужно дать возможность их запускать на стадии initinstall.d без перепаковки установщика. Исходить будем из того, что на этой стадии, в числе прочего, выполняются 10-network.sh, 26-metadata-autoinstall.sh и 27-metadata-install-scripts.sh.
Comment 10 Leonid Krivoshein 2024-04-05 18:22:26 MSK
Created attachment 15812 [details]
Возможный вариант решения

Все скрипты до 30-xxx.sh выполняются последовательно и не могут быть удалены или перезаписаны. Начиная с 30-xxx.sh скрипты могут быть перезаписаны, но не могут быть удалены. Перед их выполнением каталог initinstall.d перечитывается.
Comment 11 Leonid Krivoshein 2024-04-05 19:35:58 MSK
Task 344502.