[devel-distro] Веб-браузер в инсталляторе или для инсталлятора?

Leonid Krivoshein klark.devel at gmail.com
Tue Oct 15 23:53:54 MSK 2024


On 10/15/24 07:59, Evgeny Sinelnikov wrote:
> Доброй ночи,
>
> Ещё один конкретный вопрос. Кому и зачем нужен браузер в инсталляторе? 
> (про конфигуратор - далее)
>

Я бы говорил иначе: при работе над конфигуратором нужен стиль 
"веб-разработки" из фронтэнда, бэкенда и описания модели данных (MVC), 
при котором интерфейсная часть модуля работает в браузере или в том, что 
его заменяет, без внесения изменений в кодовую базу. Это не разделение 
на компоненты, а отделение представления от исполняющей части, но это 
единое целое. Которое, тем не менее, можно запускать как из браузера с 
другого хоста, так и локально, и не только из браузера.

Инсталлятор я бы упростил до минимума. Он должен запускаться с LiveCD, 
это можно делать сразу после запуска общесистемного конфигуратора. Тогда 
и не придётся сильно мудрить с его архитектурой.


> Я разобрал этот вопрос с antohami@ и вот к чему я пока что пришёл:
>
> Единственное, для чего нужен браузерный вариант инсталлятора - это 
> проблема необходимости для удалённой установки использовать что-то, 
> кроме браузера. Например, как у нас сейчас, VNC-клиент.
>
> Мне вот интересно. А кто у нас этим, вообще, пользуется, хотя бы через 
> VNC? И кто будет пользоваться, если такую возможность реализовать? А 
> ещё, насколько это актуально для "железных" машин, а не виртуалок. У 
> серверных, "железных" машин обычно, для этих целей имеется IPMI (или 
> аналоги). А ставить в таком режиме сотни клиентских машин - 
> сомнительная затея.

Типичный кейс -- безголовые сервера в датацентрах, всякие недоустройства 
с COM-портом или коннектором USB, одним словом всё, к чему монитор в 
реальной жизни не подключают даже на время установки. Ну нет у них 
графической карты. И не стоит надеяться на IPMI, он тоже есть не везде, 
и не везде он такой стандартный, что автоматом становится 
VGA-совместимой картой и клавиатурой. Каких-только зоопарков не бывает, 
особенно с Java и множеством проприетарных "улучшений".


>
> Ещё один момент - это "современные" тенденции всё превращать в веб. И 
> у этого есть свои преимущества, даже перед VNC, наверное. Прежде 
> всего, потому, что "всё что движется" заворачивают в http.
>

Преимущество веб в том, что работающих с ним по одному принципу платформ 
очень много, и не надо думать, мы пишем программу под Qt5 или под gtk3. 
В случае вебовского тулкита, фронтэнд будет гарантировано доступен хоть 
с Андроида, хоть с Айфона. При этом, можно завёртывать браузер в толстое 
приложение, а можно и без этого обойтись как в случае с ранее 
называвшимися flutter, slint, Qt Assembly. Разработчик не думает о "не 
браузере", исходники пригодны для работы везде.


> Кстати, следом за http появляется https и любителям веба хочется 
> задать вопрос: "А с этим как быть? Жить на самоподписанных 
> сертификатах на каждой инсталлируемой машине?".
>

Думаю, когда речь об установке единственной машины штатным установщиком, 
вопрос о протоколах не возникнет, так как для пользователя это будет 
подобно тому, что мы имеем сейчас -- толстое приложение (мало ли что у 
него там внутри завёрнуто). Он же сейчас использует QtBrowser и никак 
его это не бударажит на предмет https.

Если развёртывается много машин в большой сети, то чем плохи 
самоподписанные сертификаты? Опять же, нынешний alterator-fbi только так 
и работает "из коробки". Но ничто не мешает поменять сертификаты на 
более правильные с т.з. политики компании.


> Предлагаю тому, кто топит за эту историю решить простой, по сравнению 
> и инсталлятором вопрос - реализовать в нашем apt поддержку 
> https-proxy. После этого можно будет всерьёз говорить о компетенциях в 
> теме веба для низкоуровневых задач.
>

Полагаю, https (точнее TLS-каналов) у apt'а должно быть два, а не один, 
как сейчас в методе https. До самого прокси он должен ходить по одному 
TLS с корпоративным сертификатом, а уже внутри этого соединения 
заработает HTTP CONNECT до конечного сервера и тогда закомментированный 
сейчас в нашем apt'е код с https proxy заработает. Но я не специалист в 
нашем apt'е и https, глубоко не ковырял эту тему.


>
> Ещё один момент про веб для инсталлятора, который даже обсуждать не 
> хочется.... Звучит он так, что "на вебе вон чего делают, смотрите как 
> просто! И разработчиков на рынке во сколько".

По крайней мере, проще тем, кто этим занимается постоянно, нежели тем, 
кто занимается другой разработкой. Потому что они на этом набили руку. И 
веб-разработчиков сейчас на рынке действительно больше, чем нас.


>
> Честное слово, грустно думать даже, может быть сразу на дотнете начнём 
> тогда?
>
> ___________
>
> ....
>
> Я уже думал отправлять ответ, как получил в потоке ещё одно сообщение 
> от klark@, которое привожу ниже. По крупицам пытаюсь понять 
> недовысказанное про веб...
>
>
> 15.10.2024 01:23, Leonid Krivoshein пишет:
>>
>> On 10/14/24 22:57, Evgeny Sinelnikov wrote:
>>> Доброй ночи,
>>>
>>> хотелось бы сконцентрироваться на конкретных вопросах. Хотелось бы 
>>> ориентироваться на конструктивные предложения. Архитектурных решений 
>>> не так много, на самом деле. Архитектурных решений реализуемых в 
>>> разумные сроки еще меньше.
>>>
>>
>> Только здесь основная цель -- не сам конфигуратор, а множество 
>> работающих в нём модулей, т.е. если в разумные сроки мы сможем 
>> создавать несколько новых модулей, если к этому можно будет 
>> подключить множество разработчиков, если технология будет интересна 
>> не только нам, но и админам "на местах".
>>
> Трудно отвечать на недосказанное, подразумеваемое и предлагаемое, как 
> очевидное.
>
> Тезисно:
> - Не нужно заставлять админов быть разработчиками, если они этого сами 
> не хотят.
> - Возможности админам давать нужно, и такие возможности, как раз, и 
> предоставлены для бекендов.
> - При этом, давать возможность делать простые, кривые, небезопасные 
> фронты через веб - полная чушь.
> - Самые активные уже сейчас могут начать осваивать cockpit, в который 
> нативно встраиваются интерфейсы на dbus.
> - Желающим написать срочно свой веб-движок, аналогичный cockpit, вне 
> какой-либо модели безопасности предлагаю сначала подумать... 
> (подробности в отдельной теме).
> - "Cрочно" ничего, кроме cockpit, получить в виде веб-интерфейса пока 
> не вижу ни смысла, ни ресурсов.
> - А от админов нам нужна понятная, подробная аналитика (то есть 
> адекватная обратная связь), иначе всё так и останется в недоделанных 
> костылях.
>
> В целом, ничего не имею против костылей, кроме того, что их 
> проблематично масштабировать. Но и встраивать в продукты их не вижу 
> смысла. alterator-net-domain тому хороший пример.
>
>
> На текущий момент сценариев "подключения множества разработчиков" 
> предполагается несколько:
>
> 1) разрабатываемые в рамках unix-way бекенды могут быть встроены в 
> реализованные толстые клиенты.
>
> Для этого требуется удовлетворять при реализации этих бекендов 
> поддерживаемым уже разработанным фронтендами интерфейсам, которые 
> лежат в соответствующих пакетах:
> - 
> https://packages.altlinux.org/ru/search/?branch=sisyphus&q=alterator-interface-
>
> 2) для уже разработанных бекендов могут быть использованы разные 
> фронты под разные задачи, графические окружения, а также консольные 
> утилиты.
>
> Всё это достаточно понятно админам. Не вижу никаких для них в этом 
> сложностей, если они хотят что-то разработать. Документацию будем 
> наращивать. Примеры тоже будем создавать.
>
>
> [...]
>>>>
>>>> А, если нам нужен графический инсталлятор, то графику, в любом 
>>>> случае, не стоит запускать под рутом.
>>
>> Да.
>>
>> Конфигуратор я бы рассматривал как веб-интерфейс, работающий не под 
>> root'ом, и не обязательно на том же хосте. Как фоновый агент, через 
>> который можно менять настройки системы, будучи администратором сети, 
>> у которого есть полномочия, а не только как локальный root. И одной 
>> из обязанностей этого фонового агента может быть периодическое 
>> обновление куска дерева конфигурации с какого-то условного 
>> контроллера домена.
>>
>> Часть настроек может быть изначально в ведении обычного пользователя. 
>> В идеале иметь возможность как делегировать пользователям полномочия 
>> менять конкретные системные настройки, так и наоборот, забирать у 
>> обычного пользователя полномочия менять изначально пользовательские 
>> настройки. Всё это разделение прав решается в пределах одной 
>> программы конфигуратора без SELinux, Polkit и интроспекции dbus. Как 
>> вариант, в пределах иерархической БД конфигурации. К слову, в 
>> виндовом реестре, помимо древовидных "кустов" предусматривалась 
>> раздача ACL на целый "куст".
>>
> Ну, давайте... + ещё один какой-то фоновый агент, с непонятным 
> протоколом и непродуманным способом аутентификации...
>
> где "всё это разделение прав решается в пределах одной программы 
> конфигуратора".
>
> Кто это всё писать собирается, если архитектура даже не продумана? В 
> какие сроки?
>
> [...]
>>
>>> Кстати, как альтернативу, с недавних пор systemd рассматривает - 
>>> https://varlink.org/
>>>
>>> Systemd Looking At A Future With More Varlink & Less D-Bus For IPC
>>> https://www.phoronix.com/news/Systemd-Varlink-D-Bus-Future
>>>
>>
>> Просто, по нужде люди работают много лет с этим dbus и понимают, что 
>> организовать взаимодействие можно намного проще. Причём там, где оно 
>> действительно нужно. Например, когда мы связываем фронт с бэком в 
>> UI/UX, JSON & Ко уместнее dbus, особенно, если мы выходим за пределы 
>> хоста, чего хотелось бы. Если конфигуратор -- одна программа, если 
>> наш тулкит уже позаботился о взаимодействии фронт и бэк частей 
>> модуля, нам даже не надо об этом думать и остаётся только решить, в 
>> каких случаях уместно использовать кем-то написанное с использованием 
>> dbus, чтобы подтянуть и этот дополнительный функционал.
>>
> Вот, вроде хотим конфигуратор, а превращается всё в веб-интерфейс для 
> ansible.
>
> Не понимаю что значит: "Если конфигуратор -- одна программа, если наш 
> тулкит уже позаботился о взаимодействии фронт и бэк частей модуля, нам 
> даже не надо об этом думать и остаётся только решить, в каких случаях 
> уместно использовать кем-то написанное с использованием dbus, чтобы 
> подтянуть и этот дополнительный функционал."
>
> Кто, о чём, как, почему должен позаботиться? (это риторический вопрос)
>
> Ответа, полагаю, просто нет. Архитектуры нет. Есть предположения о 
> том, что если удачная архитектура кем-то будет реализована, то всё 
> можно будет как-то сделать.
>
> Про удалённый доступ напишу в ответвлении про интерфейсы.
>

Всё верно. Архитектуры нет, её только начали обсуждать. И да, веб-морда 
для ansible прямо не называлась, но если мы не имеем ресурсов и желания 
делать что-то своё, то хотя бы стоит подумать об адаптации ОС Альт к 
таким готовым решениям, как SaltStack+SaltGUI или аналогам. Из всех с 
кем имел дело по технической линии и совместимости на самых крупных 
внедрениях большинство либо на salt переходят, либо на коммерческие 
допиленные аналоги salt из реестра.


>
> 14.10.2024 11:27, Sergey V Turchin пишет:
>> On Thursday, 10 October 2024 22:29:00 MSK Leonid Krivoshein wrote:
>>> On 10/9/24 22:46, Leonid Krivoshein wrote:
>>>> On 10/9/24 12:06, Sergey V Turchin wrote:
>>>>> On Wednesday, 9 October 2024 04:40:37 MSK Leonid Krivoshein wrote:
>>>>>
>>>>> [...]
>>>>>
>>>>>> 1.4. Разве вебовский UI/UX сейчас не приоритетней? Его давно не
>>>>>> проблема
>>>>>> встраивать в толстые приложения.
>>>>> Проблема. Например, на e2k кроме Gecko/Firefox есть лишь некий
>>>>> libwebkitgtk4,
>>>>> который не везде встроишь.
>>> Достаточно того, что есть браузер, из него можно конфигурировать 
>>> систему.
>> Какой веб-браузер будем использовать в установщике на e2k? Или только 
>> по сети
>> из Internet Explorer?
>>
>> [...]
>>

-- 
WBR, Leonid Krivoshein.



More information about the devel-distro mailing list