218

Веб-интерфейс для создания образов для Raspberry Pi

Введение


Всем привет. Наконец наша небольшая команда снова дает о себе знать. На этот раз речь пойдет о системе кастомизации образов для Raspberry Pi онлайн под названием CusDeb. Последнее время, когда я пытаюсь рассказать как это работает, мне в голову в качестве аналогии приходит Subway. Когда я первый раз купил саб, меня поразила возможность еще до покупки продукта, указать те компоненты, из которых он будет состоять. Мне всегда казалось, что у нас должно быть в Debian и Ubuntu что-то похожее на «кастомизированные сэндвичи». Спустя несколько лет мы вернулись с друзьями к этой идеи и реализовали ее. Тем не менее, по какой-то причине люди до сих пор берут Raspbian и затачивают его под конкретную задачу уже на самой RPi, редактируя конфигурационные файлы, удаляя и устанавливая пакеты, как если бы они покупали универсальный саб и перед едой заменяли кетчуп на горчицу, тунец на бекон и добавляли красный лук и халапеньо.

Конечно, идея кастомизации Linux-подобных систем не нова. Существенная порция вдохновения к нам пришла от SUSE Studio, который появился аж в 2009.

Этот сервис в основном ориентируется на виртуальные окружения, позволяя генерировать образы кастомизированных openSUSE и SUSE Linux Enterprise для различных систем виртуализации, хотя и не ограничивается этим. Мы, в свою очередь, решили сосредоточиться на одноплатных компьютерах и Debian-подобных дистрибутивах. В идеале я вижу CusDeb системой, которая предоставляет единый интерфейс для приготовления проблемно-ориентированной операционной системы для широкого круга одноплатных компьютеров. На данный момент у нас есть поддержка пока только двух моделей RPi (2 и 3) и двух выпусков Debian (Jessie и Stretch).


Первое знакомство с CusDeb


После регистрации вы попадете в панель управления, откуда сразу можно начать сборку образа. В будущем здесь можно будет найти все собранные образы. Также здесь в качестве эксперимента находится образ с уже готовым приложением – Nextcloud, которое позволяет создать домашнее облачное хранилище на базе Raspberry Pi 2 или 3. Этому приложению была посвящена другая статья на Пикабу.

Основная движуха начинается после нажатия на «СОЗДАТЬ НОВЫЙ».

На этом этапе нужно выбрать устройство, для которого необходим кастомизированный образ операционной системы, и дистрибутив, на базе которого этот образ будет построен. Наша задача в ближайшее время расширять эти два списка, чтобы сделать CusDeb более привлекательным для конечных пользователей. Как уже говорилось выше, CusDeb пока поддерживает только Debian Jessie и Debian Stretch, причем последний доступен только по подписке. После нажатия на кнопку «Далее» придется немного подождать, т.к. лично для вас необходимо создать персональное окружение, в рамках которого вы будете работать над своим будущим образом.

Кастомизация начинается с выбора пакетов. В основу будущего образа закладывается минимальная версия операционной системы, поэтому в ней нет ничего лишнего. Примечательно, что минимальная (или базовая) версия Debian Jessie состоит аж из 121 пакета, что не мало. Для сравнения, минимальная версия Debian Stretch состоит всего из 76 пакетов.

Здесь мы явно заимствовали одну из крутейших фич SUSE Studio – список пакетов всего дистрибутива с возможностью разрешения зависимостей в реальном времени. Если вы выберите тот или иной пакет, то сразу увидите, какие пакеты добавятся в ваш образ в качестве зависимых, а также общее количество пакетов.

На следующем этапе можно ознакомиться со списком тех пользователей, которые уже есть в вашей системе, и при необходимости добавить новых.

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

После того как вы убедились в том, что вы сделали все, что хотели на каждом шаге, нажмите кнопку «Собрать». После этого запустится достаточно долгий процесс сборки, который будет сильно зависеть от тех пакетов, которые вы добавили в свой образ. Кстати, лог сборки вы можете также наблюдать в реальном времени.

Даже если вы закроете вкладку или окно браузера, после окончания сборки вам придет письмо на указанный при регистрации ящик со ссылкой на ваш образ. К сожалению, иногда сборка может упасть. Мы стараемся свести число таких случаев к минимуму, оперативно реагируя и исправляя баги. Однако, если ваша сборка все же завалилась, то вы также будете уведомлены об этом по электронной почте. В этом случае не стоит отчаиваться и терять энтузиазм. Мы починим сборщик, чтобы другие пользователи не столкнулись с теми же проблемами на той же конфигурации, которую использовали вы.


Как помочь проекту


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

* какой фичи лично вам не хватает в CusDeb и почему не хватает именно ее;

* какие одноплатники вы бы хотели видеть в списке целевых устройств;

* в каких проектах (коммерческих и некоммерческих) вы используете одноплатники и какими вы пользуетесь инструментами.


Покупка Pro-подписки может считаться материальной поддержкой проекта.

Arduino & Pi

1.5K постов20.9K подписчиков

Правила сообщества

В нашем сообществе запрещается:

• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)

• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском

• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)

• Рассуждать на темы политики

• Нарушать установленные правила Пикабу

2
Автор поста оценил этот комментарий
интересная идея, исходники есть в открытом доступе?
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Как раз занимаемся отделением чисто внутренних компонентов (платежи, к примеру) от общих, чтобы опубликовать все это на GitHub.

показать ответы
2
Автор поста оценил этот комментарий
(...)мне в голову в качестве аналогии приходит Subway. Когда я первый раз купил саб, меня поразила возможность еще до покупки продукта, указать те компоненты, из которых он будет состоять(...)

Скорее всего, полнейший офф к топику, но это - единственная причина, почему я почти никогда не хожу в Сабвей. Я - очень ленивый человек, мне влом в обеденный перерыв думать и "конфигурировать" десяток параметров сэндвича :))) Я хочу выбрать из 3-4 готовых вариантов тот, который мне нравится больше других, получить сэндвич и отдохнуть за его поеданием.

Смешнее всего мне было, когда я узнал от коллеги, что она не ходит в сабвей ровно по той же причине.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Я заказываю на автомате одну и ту же конфигурацию в силу консервативности=)
2
Автор поста оценил этот комментарий
интересная идея, исходники есть в открытом доступе?
раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Вот есть скрипт сборки: https://github.com/tolstoyevsky/pieman

0
Автор поста оценил этот комментарий

41558 пакетов отсортированным по алфавиту списком это как-то не очень удобно. Как минимум нужна разбивка по категориям.

В идеале надо вообще запилить выбор между списком разбитым на категории, и пакетной установкой, тупо ролями. То есть, человек видит десяток-другой картинок "программирование", "офис", "веб сервер", "игры и эмуляторы", "медиацентр", "облачное хранилище" и т.д.. Отмечая их он добавляет комплект пакетов необходимых для использования одноплатника в данных задачах. Выбрал веб-сервер - получил минимальную систему без гуя + сервер с обвязкой. Выбрал офис, добавляем гуй и либреофис, или что там сейчас в моде.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Разбивка пакетов на категории в процессе. В недалеком будущем будет обязательно. Спасибо, что указали на это.

2
Автор поста оценил этот комментарий

Апельсинки ака OranjePi хотелось бы видеть. Довольно популярная альтернатива малинки.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Ok, есть в планах. Спасибо.
показать ответы
1
Автор поста оценил этот комментарий

фича реквест: помимо малинки добавить туда odroid

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Спасибо. Расскажите пожалуйста, где где вы используете Odroid?

показать ответы
0
Автор поста оценил этот комментарий

Эммм...

Частичный функционал штатного инсталятора для Jessie, за деньги для Stretch и все это для Pi2/3, я все правильно понял?

Не рановато для алмазов и слитков?


Если серьезнее, мне кажется что тем, кто ковыряет одноплатники for fun, проще (и полезнее) затачивать систему на ходу, а кто занимается этим серьезно, вероятно уже раскурили маны по debootstrap'у.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий
Это была шутка про алмазы и слитки, которую я заимствовал из djangobook.
0
Автор поста оценил этот комментарий

Ну и еще такой вопрос, возвращаясь к netatalk3:

В будущем или настоящем можно будет интегрировать в дистрибутив свои пакеты или репозитории?

раскрыть ветку (1)
Автор поста оценил этот комментарий
Да. В самых ближайших планах -- подключение сторонних репозиториев (своих или чужих -- не важно), чтобы можно было из списка пакетов добавить в образ те пакеты, которых нет в официальных репозиториях.
0
Автор поста оценил этот комментарий

Поняль. Просто я ленивая жопа, мне лень вводить название пакета целиком. Введя "mini" я рассчитывал увидеть список пакетов с именами содержащими "mini", но minidlna в нем нет.

Или вот я ищу netatalk, мне предлагается gosa-plugin-netatalk. Но мне нужен пакет который просто netatalk, он есть в Debian Jessy. Хотя нет, пизжу - тот что есть из ветки 2 - ненужен, я обычно сам собираю версию из ветки 3. Но по сути, все-равно нет его в результатах поиска.


Баг/не баг, но примите с сведению.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Спасибо. Исправим.

показать ответы
Автор поста оценил этот комментарий

Что-то пошло не так. В Debian не находится пакеты transmission-deamon и minidlna. Чуть-ли не основной стаф!

раскрыть ветку (1)
Автор поста оценил этот комментарий
Пакет называются transmission-daemon. minidlna так и называется и я смог его найти.
показать ответы
0
Автор поста оценил этот комментарий

Не пробовали объедениться частично в работе с ArmBian проектом? А по проекту - весьма круто, вот только при большом количестве запросов - будет ппц какая нагрузка. Лучше сделать сборку основной части на сервере, а вот при первом запуске чтобы качало пакеты и зависимости у же у самого конечного пользователя. То есть на сервере формируются первичные параметры и скрипт запуска у пользователя последующих настроек и установок.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Спасибо за идеи. С ArmBian пока не пытались скооперироваться, но думаю все ещё впереди.
0
Автор поста оценил этот комментарий
Я бы порекомендовал ещё использовать ubuntu mate. Мы отказались от джесси из-за небольших проблем с мультимедия. Плюс ещё чет было с пакетами кастомными, мейт более веселее
раскрыть ветку (1)
Автор поста оценил этот комментарий

Можете рассказать, в каких проектах использовали Jessie, а потом отказались от него?

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества