Top Banner
Архитектура и реализация Debian Installer Нетривиальное применение D-I Практические примеры проектов Вопросы Debian Installer(d-i) Промышленная платформа для создания специализированных дистрибутивов и сред инсталяции Влад ’mend0za’ Шахов Minsk Linux Users Group (MLUG) LVEE-2008 Гродно, Беларусь Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа
25

Debian Installer (D-I): Промышленная платформа создания специализированных дистрибутивов и сред инсталяции

Nov 28, 2014

Download

Technology

Vlad Shakhov

Архитектура и реализация D-I.
Нетривиальное применение (LiveCD, автоматическая установка, изменение инсталятора).
Примеры проектов.

Впоследствии было развёрнуто в статью на IBM developerWorks : http://www.ibm.com/developerworks/ru/library/shakhov/debian_installer/
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Debian Installer (D-I): Промышленная платформа создания специализированных дистрибутивов и сред инсталяции

Архитектура и реализация Debian InstallerНетривиальное применение D-I

Практические примеры проектовВопросы

Debian Installer(d-i)Промышленная платформа для создания

специализированных дистрибутивов и срединсталяции

Влад ’mend0za’ ШаховMinsk Linux Users Group (MLUG)

LVEE-2008Гродно, Беларусь

Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа

Page 2: 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). Промышленная платформа

Page 3: Debian Installer (D-I): Промышленная платформа создания специализированных дистрибутивов и сред инсталяции

Архитектура и реализация Debian InstallerНетривиальное применение D-I

Практические примеры проектовВопросы

Архитектура D-IСтадии установкиВариативность компонент

Архитектура и реализация D-I

АРХИТЕКТУРА И РЕАЛИЗАЦИЯ D-I

Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа

Page 4: Debian Installer (D-I): Промышленная платформа создания специализированных дистрибутивов и сред инсталяции

Архитектура и реализация Debian InstallerНетривиальное применение D-I

Практические примеры проектовВопросы

Архитектура D-IСтадии установкиВариативность компонент

Основы D-I

Debian Installer - "дистрибутив в дистрибутиве":Модульность - стандартные пакеты формата debГибкое управление порядком установки пакетаРасширяемость - добавление своих модулейКонфигурируемость - механизм debconf и заданиепараметров установки

Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа

Page 5: Debian Installer (D-I): Промышленная платформа создания специализированных дистрибутивов и сред инсталяции

Архитектура и реализация Debian InstallerНетривиальное применение D-I

Практические примеры проектовВопросы

Архитектура D-IСтадии установкиВариативность компонент

СтадииНачальная загрузка

Каждая стадия инсталяции - пакет (UDEB) или несколькопакетов

1 Инициализация shm, копирует содержимое initrd и pivotroot в полученную папку

2 Выбор языка, страны клавиатуры3 Начальное определение hardware4 Различные продолжения, в зависимости от источника

инсталяции5 Загрузка дополнительных компонент инсталятора

Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа

Page 6: 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). Промышленная платформа

Page 7: 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). Промышленная платформа

Page 8: 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). Промышленная платформа

Page 9: Debian Installer (D-I): Промышленная платформа создания специализированных дистрибутивов и сред инсталяции

Архитектура и реализация Debian InstallerНетривиальное применение D-I

Практические примеры проектовВопросы

Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор

Нетривиальное применение D-I

НЕТРИВИАЛЬНОЕ ПРИМЕНЕНИЕ D-I

Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа

Page 10: 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). Промышленная платформа

Page 11: 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). Промышленная платформа

Page 12: 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). Промышленная платформа

Page 13: Debian Installer (D-I): Промышленная платформа создания специализированных дистрибутивов и сред инсталяции

Архитектура и реализация Debian InstallerНетривиальное применение D-I

Практические примеры проектовВопросы

Сборка инсталяционных образовLiveCD (не совсем о D-I)Автоматическая установка в стиле DebianВнесение изменений в инсталятор

LiveCD

Пакет live-helperСоздание ISO, netboot и USB образовПоддержка шифрованной файловой системыГибкая система плагиновВозможность настроить любую фазу создания образа

Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа

Page 14: 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). Промышленная платформа

Page 15: 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). Промышленная платформа

Page 16: 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). Промышленная платформа

Page 17: 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). Промышленная платформа

Page 18: Debian Installer (D-I): Промышленная платформа создания специализированных дистрибутивов и сред инсталяции

Архитектура и реализация Debian InstallerНетривиальное применение D-I

Практические примеры проектовВопросы

ПО управления видео экранамиРаспределённая установка с контролем операторомNetwork Attached Storage для i386

Практические примеры проектов

ПРАКТИЧЕСКИЕ ПРИМЕРЫ ПРОЕКТОВ

Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа

Page 19: 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). Промышленная платформа

Page 20: 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). Промышленная платформа

Page 21: 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). Промышленная платформа

Page 22: 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). Промышленная платформа

Page 23: 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). Промышленная платформа

Page 24: 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). Промышленная платформа

Page 25: 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

[email protected]

Влад ’mend0za’ Шахов Debian Installer (d-i). Промышленная платформа