Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025)

Материал из 0x1.tv

(перенаправлено с «20251004B»)
Докладчик
Артём Осипчук.jpg
Артём Осипчук

Я занимаюсь формированием образов для нескольких курсов факультета ВМК МГУ с помощью инструмента mkimage-profiles от ALT Linux Team. Это независимый проект по заказу преподавателя факультета. Один из образов уже использовался для ведения курса лекций, второй будет использоваться в этом семестре.

Моя работа оформлена в виде набора подключаемых модулей и профилей сборки для инструмента mkimage-profiles. Каждый из модулей представляет из себя каталог, содержащий набор файлов, подкладываемых в образ, или скриптов, исполняющихся в нём или во время его сборки. Все они обособлены и реализуют какие-то свойства собираемых мной дистрибутивов. В ходе своей работы я придерживался стандартов разработки mkimage-profiles и планирую влить свои изменения в главную ветку.

Видео[править вики-текст]

Презентация[править вики-текст]

Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025).pdf Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025).pdf Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025).pdf Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025).pdf Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025).pdf Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025).pdf Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025).pdf Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025).pdf Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025).pdf Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025).pdf

Thesis[править | править вики-текст]

Ключевые слова: Mkimage-profiles, профилирование, автоматизация, сборка, дистрибутивы.

Mkimage-profiles[1] — инструментарий для создания метапрофилей дистрибутивов ALT Linux, из которых генерируются профили сборки конкретных дистрибутивов и происходит сама сборка с помощью инструмента mkimage.

Было сформировано три образа, каждый из них имеет свой собственный профиль и набор подключаемых модулей, которые в терминах mkimage-profiles называют «фичи». Профиль требуется для сборки средствами инструмента mkimage-profiles, в нём описываются различные свойства образа: список пакетов, запускаемые фичи, содержимое автозапуска. Фича — это обозначающий каталог, содержащий набор файлов, подкладываемых в образ, или скриптов, исполняющихся в нём или во время его сборки.

Образ для кафедрального курса АСВК «Практические аспекты сетевых протоколов в Linux» факультета ВМК является образом виртуальной машины. Для сборки образа был сформирован отдельный профиль на основе профиля для ОС JeOS. Была создана фича, содержащая затребованные преподавателям каталоги с файлами, а также некоторыми сценариями. В образ были добавлены подключение по последовательному порту, включение и выключение автозапуска необходимых сервисов, создание пароля для суперпользователя, подключение списка пакетов, наличие авторизованного ключа и дополнительных настроек для подключения к клонам образа из-под суперпользователя. Также было выделено дополнительное пространство для виртуального жёсткого диска образа и были подключены репозитории с пакетами, чтобы преподаватель мог устанавливать новые утилиты, вместо создания образа с новым списком пакетов. Образ предназначен для использования в среде VirtualBox[2], поэтому была дополнительно настроена эмуляция внешних интерфейсов, требующихся для изучения сетевых протоколов в ходе курса.

Образ был использован для проведения лекций по курсу «Практические аспекты сетевых протоколов в Linux». Благодаря обратной связи, образ был неоднократно доработан, а также была выработана процедура его регулярного обновления по запросу преподавателя.

Образ для практикума кафедрального курса АСВК «Совместная разработка на языке Python» факультета ВМК. Для сборки образа был сформирован отдельный профиль на основе одного из профилей регулярной сборки. Регулярные сборки образов — это загрузчики с программой установки, включающие комплект пакетов одной из графических сред с минимальными дополнениями. Для работы был предоставлен образ дистрибутива ОС, использующийся для проведения практикума. Список пакетов и часть сценариев, использовавшихся для ручной настройки этого образа были перенесены в систему сборки mkimage-profiles, также образ был модифицирован.

Для образа было создано несколько фич. Первая из них содержит настройки внешнего вида и пользовательского сеанса. В ней содержится изменение переменной окружения $PATH, изменение имени локального домена, настройка паролей суперпользователя и стандартного пользователя, отключение автоматического логина стандартного пользователя, отключение создания домашней папки стандартного пользователя по отдельным правилам, отключение отображения несмонтированных файловых систем на рабочем столе и смена обоев. Также в образе удалены все члены группы wheel, кроме суперпользователя, и ограничен доступ к sudo во избежание использования прав администратора кем-либо кроме суперпользователя. Доступ к правам администратора осуществляется через su.

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

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

Реализованы две дополнительные фичи, которые можно подключить к профилю образа практикума для проведения других курсов. Одна из них содержит virt-manager и задействует сервис монтирования из другой фичи практикума. С её помощью монтируется раздел с изучаемыми образами. Другая, для работы с VirtualBox, сразу доставляет образ виртуального жёсткого диска, а потом регистрирует его с помощью сервиса. Также в него доставлены скрипты преподавателя для работы с VirtualBox. Фичи имеют взаимоисключающие модули ядра, поэтому не могут быть подключены одновременно. В обоих образах приложения для запуска виртуальных машин сделаны общедоступными.

В результате были полностью сформированы 4 образа. Создание и конфигурирование образов средствами mkimage-profiles показало себя как эффективное решение. Образы удобно менять под требования преподавателей и обновлять. В будущем я планирую влить профили и фичи своих образов в основную ветку разработки mkimage-profiles.


Использование mkimage-profiles для нужд факультета ВМК МГУ (Артём Осипчук, OSSDEVCONF-2025)!.jpg

Примечания и ссылки[править вики-текст]

  1. Michael Shigorin, Anton Midyukov Документация Mkimage-profiles. https://nightly.altlinux.org/docs/mkimage-profiles.html
  2. VBoxManage Introduction. https://www.virtualbox.org/manual/topics/vboxmanage.html