debian installer (d-i): Промышленная платформа создания...
DESCRIPTION
Архитектура и реализация D-I. Нетривиальное применение (LiveCD, автоматическая установка, изменение инсталятора). Примеры проектов. Впоследствии было развёрнуто в статью на IBM developerWorks : http://www.ibm.com/developerworks/ru/library/shakhov/debian_installer/TRANSCRIPT
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Debian Installer(d-i)Промышленная платформа для создания
специализированных дистрибутивов и срединсталяции
Влад ’mend0za’ ШаховMinsk Linux Users Group (MLUG)
LVEE-2008Гродно, Беларусь
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
1 Архитектура и реализация Debian InstallerАрхитектура D-IСтадии установкиВариативность компонент
2 Нетривиальное применение D-IСборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор
3 Практические примеры проектовПО управления видео экранамиРаспределённая установка с контролем операторомNetwork Attached Storage для i386
4 Вопросы
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Архитектура D-IСтадии установкиВариативность компонент
Архитектура и реализация D-I
АРХИТЕКТУРА И РЕАЛИЗАЦИЯ D-I
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Архитектура D-IСтадии установкиВариативность компонент
Основы D-I
Debian Installer - "дистрибутив в дистрибутиве":Модульность - стандартные пакеты формата debГибкое управление порядком установки пакетаРасширяемость - добавление своих модулейКонфигурируемость - механизм debconf и заданиепараметров установки
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Архитектура D-IСтадии установкиВариативность компонент
СтадииНачальная загрузка
Каждая стадия инсталяции - пакет (UDEB) или несколькопакетов
1 Инициализация shm, копирует содержимое initrd и pivotroot в полученную папку
2 Выбор языка, страны клавиатуры3 Начальное определение hardware4 Различные продолжения, в зависимости от источника
инсталяции5 Загрузка дополнительных компонент инсталятора
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Архитектура D-IСтадии установкиВариативность компонент
СтадииУстановка базовой системы
1 Разбиение дисков и присваивание точек монтирования2 Установка базовой системы (c cdrom, network)3 Установка дополнительных компонент и ядра4 Установка часов, временной зоны, паролей root и
пользователей5 Настройка apt и установка задач (tasks)6 boot loader7 Перезагрузка
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Архитектура D-IСтадии установкиВариативность компонент
Многообразие возможных сценариев работы
Единица установки - компонент:Компонент характеризуется приоритетом (специальноеполе пакета)Каждая стадия - набор опций debconf
Варианты:frontend - графический, текстовый, web, ssh,non-interactiveРазбиение дисков - RAID 0/1/5, LVM, шифрованиеЛюбые файловые системыИсточники для инсталяции: CD, Floppy, сеть, винчестер
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Архитектура D-IСтадии установкиВариативность компонент
Многообразие возможных сценариев работы
Единица установки - компонент:Компонент характеризуется приоритетом (специальноеполе пакета)Каждая стадия - набор опций debconf
Варианты:frontend - графический, текстовый, web, ssh,non-interactiveРазбиение дисков - RAID 0/1/5, LVM, шифрованиеЛюбые файловые системыИсточники для инсталяции: CD, Floppy, сеть, винчестер
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор
Нетривиальное применение D-I
НЕТРИВИАЛЬНОЕ ПРИМЕНЕНИЕ D-I
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор
Типовые задачи
Custom Debian Distribution (CDD)Решение типовых задач построения своих дистрибутивов:
1 Изменение состава ПО в инсталяционном CD2 Изменения в стандартном процессе инсталяции3 Автоматическая (OEM) инсталяция (механизм preseed)4 Распределённая сетевая установка
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор
Изменение состава ПО
Old school: пакет debian-cdОбширная система настроек через переменныеокружения ShellОфициальные, так и неофициальные сборки DebianТребует высокой квалификации пользователя
New way: пакет simple-cddprofiles: возможность задать конфигурациюсписок пакетовответы на вопросы инсталяторакэширование зеркала перед сборкой ISOзадание источников для установки компонентинсталятора и пакетов
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор
Изменение состава ПО
Old school: пакет debian-cdОбширная система настроек через переменныеокружения ShellОфициальные, так и неофициальные сборки DebianТребует высокой квалификации пользователя
New way: пакет simple-cddprofiles: возможность задать конфигурациюсписок пакетовответы на вопросы инсталяторакэширование зеркала перед сборкой ISOзадание источников для установки компонентинсталятора и пакетов
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор
LiveCD
Пакет live-helperСоздание ISO, netboot и USB образовПоддержка шифрованной файловой системыГибкая система плагиновВозможность настроить любую фазу создания образа
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор
PRESEED
Preseedтекстовый файл с ответами на вопросы инсталяторапуть к preseed-файлу: локальный или urlспециальный язык для задания разметки дисказадаётся в конфигурации simple-cdd (или debian-cd)
Пример (фрагмент miu.preseed)
d-i netcfg/choose_interface select autod-i mirror/http/hostname string mend0za.velesys.comd-i passwd/root-password-crypted password [MD5 hash]d-i preseed/late_command string \
in-target sed -i ’/DPMS/d’ /etc/X11/xorg.conf
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор
PRESEED
Preseedтекстовый файл с ответами на вопросы инсталяторапуть к preseed-файлу: локальный или urlспециальный язык для задания разметки дисказадаётся в конфигурации simple-cdd (или debian-cd)
Пример (фрагмент miu.preseed)
d-i netcfg/choose_interface select autod-i mirror/http/hostname string mend0za.velesys.comd-i passwd/root-password-crypted password [MD5 hash]d-i preseed/late_command string \
in-target sed -i ’/DPMS/d’ /etc/X11/xorg.conf
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор
Проектирование1 Выбрать этап инсталяции для изменения2 Определить могут ли существующие модули сделать то
что вам надо
Как1 Создать/изменить пакет udeb (Shell, C)2 Задать приоритет udeb3 Добавить к сборке образа (в simple-cdd)4 (Опционально) Пересобрать D-I
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор
Проектирование1 Выбрать этап инсталяции для изменения2 Определить могут ли существующие модули сделать то
что вам надо
Как1 Создать/изменить пакет udeb (Shell, C)2 Задать приоритет udeb3 Добавить к сборке образа (в simple-cdd)4 (Опционально) Пересобрать D-I
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
ПО управления видео экранамиРаспределённая установка с контролем операторомNetwork Attached Storage для i386
Практические примеры проектов
ПРАКТИЧЕСКИЕ ПРИМЕРЫ ПРОЕКТОВ
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
ПО управления видео экранамиРаспределённая установка с контролем операторомNetwork Attached Storage для i386
Демонстрационнные экраны: Оконечные устройства
Техническое заданиеOEM-Инсталяция с CD-ROM без единого вопросаУстановка собственного ПОРабота из коробкиДополнительно: Демо вариант LiveCD
Реализация - simple-cdd + preseed + live-helperПакетирование собственного ПО в .debsimple-cdd + preseed + свои пакеты в ISO образlive-helper - LiveCD
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
ПО управления видео экранамиРаспределённая установка с контролем операторомNetwork Attached Storage для i386
Демонстрационнные экраны: Оконечные устройства
Техническое заданиеOEM-Инсталяция с CD-ROM без единого вопросаУстановка собственного ПОРабота из коробкиДополнительно: Демо вариант LiveCD
Реализация - simple-cdd + preseed + live-helperПакетирование собственного ПО в .debsimple-cdd + preseed + свои пакеты в ISO образlive-helper - LiveCD
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
ПО управления видео экранамиРаспределённая установка с контролем операторомNetwork Attached Storage для i386
Распределённая установка видео экранов
Техническое заданиеАвтоматическая установка по сетиСотни одновременно устанавливаемых устройствКонтроль человеком-оператором статус установок
Реализация - simple-cdd + preseed + netboot + udebDHCP + TFTP + отдача preseed по сети (http)Серверное CGI-based ПОudeb-пакет c хуками в фазы инсталяциисервер содержит зеркало пакетов (установка иобновление)фактически два дистрибутива - серверный и клиентский(simple-cdd)
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
ПО управления видео экранамиРаспределённая установка с контролем операторомNetwork Attached Storage для i386
Распределённая установка видео экранов
Техническое заданиеАвтоматическая установка по сетиСотни одновременно устанавливаемых устройствКонтроль человеком-оператором статус установок
Реализация - simple-cdd + preseed + netboot + udebDHCP + TFTP + отдача preseed по сети (http)Серверное CGI-based ПОudeb-пакет c хуками в фазы инсталяциисервер содержит зеркало пакетов (установка иобновление)фактически два дистрибутива - серверный и клиентский(simple-cdd)
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
ПО управления видео экранамиРаспределённая установка с контролем операторомNetwork Attached Storage для i386
Network Attached Storage для i386
Техническое заданиеПортирование функционала с Alt Linux на DebianУправление функциями NAS через EVMSWebGUI на JavaHotplug для 4 винчестеров
Реализация - simple-cddПолная пересборка D-I с модификацией ядраЗамена стандартного partman на partman-evmsПакетирование GUI
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
ПО управления видео экранамиРаспределённая установка с контролем операторомNetwork Attached Storage для i386
Network Attached Storage для i386
Техническое заданиеПортирование функционала с Alt Linux на DebianУправление функциями NAS через EVMSWebGUI на JavaHotplug для 4 винчестеров
Реализация - simple-cddПолная пересборка D-I с модификацией ядраЗамена стандартного partman на partman-evmsПакетирование GUI
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
Архитектура и реализация Debian InstallerНетривиальное применение D-I
Практические примеры проектовВопросы
Вопросы?
Ваши вопросы
http://www.debian.org/devel/debian-installerhttp://wiki.debian.org/Simple-CDDhttp://debian-live.alioth.debian.org
Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа