Сборочный сервер: механизм работы

Материал из Rosalab Wiki
Перейти к: навигация, поиск

СТРАНИЦА В ПРОЦЕССЕ ПРАВКИ -- НЕ ТРОГАТЬ!

Сборочный сервер. Механизм работы.

Сборочная система состоит из следующих компонентов:

  • Система сборки (Build core) — компонент, отвечающий непосредственно за сборку пакетов из исходных кодов. Он реализован в виде клиент-серверного приложения;
  • Система хранения исходных кодов(СХИК) — специализированная системы контроля версий на основе Git#. Обеспечивает версионное хранение исходных кодов пакетов. Также это централизованное место для работы над кодом группы разработчиков;
  • Система сборки дистрибутива — компонент, отвечающий за сборку и выпуск продукта. В общем случае это iso-образ дистрибутива;
  • Веб-интерфейс — интерфейс между пользователем и сборочной системой. Представляет доступ ко всем основным функциям системы, а так же ряду дополнительных сервисов.


Технологический процесс работы сборочной системы на участке: Пользователь — Система хранения исходных кодов — Система сборки показан на рисунке 2.1.1


Рисунок 2.1.1 “Технологический процесс на участке Пользователь — Система хранения исходных кодов — Система сборки


Git — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux.

Рисунок 2.1.1 “Технологический процесс на участке Пользователь — Система хранения исходных кодов — Система сборки”


Технологический процесс работы сборочной системы на участке: Система сборки — Репозиторий показан на рисунке 2.1.2

Рисунок 2.1.2 “Технологический процесс на участке Система сборки — Репозиторий”

Технологический процесс работы сборочной системы на участке: Система сборки - Репозиторий (Диаграмма 3)


Рисунок 2.1.3 “Технологический процесс на участке Репозиторий — Система сборки дистрибутива — Дистрибутив”


Обозначения для диаграмм: В данных диаграммах процесс показан в общем, множество деталей опущено. Их цель — дать представление о работе сборочной системы. Основным элементом потока данных, с котором происходит работа, является пакет#. Последовательность операций над новым пакетом на рисунке 2.1.1:

Пакет — файл‐архив, предназначенный для установки с помощью системы управления пакетами.

Новый пакет из внешнего источника загружается в систему с помощью веб-интерфейса или через гит; Следующий шаг — сборка пакета; Собранный пакет публикуется в репозитории.


Процесс сборки пакета представляет собой следующие шаги (отображен на рисунке 2.1.2): Создание специального окружения для безопасной и независимой от окружения сборки; Компиляция исходных кодов под определенную архитектуру(если требуется); Размещение файлов проекта согласно требованиям по расположению файлов в дистрибутиве Запись контрольных сумм файлов; Архивирование результата.


Добавление файлов в репозиторий: перемещение пакета в нужную директорию; обновление файлов-индексов о содержащихся в репозитории пакетах.


Главное требование - непротиворечивость данных. Так в репозиторий может прийти сразу несколько обновлений, организуется очередь. В противном случае возможно получить ситуацию, называемой брошенной зависимостью (“broken depends”), когда установка части пакетов не будет возможна, так как они зависят от пакетов, которых нет в репозитории.

Процесс сборки дистрибутива, представленный на рисунке 2.1.3: Создание безопасного окружения; Формирование списка пакетов и их загрузка; Установка базовой система; Установка специфичных пакетов; Первичная конфигурация; Копирование файлов в заданные директории; Упаковка сформированной системы; Формирование инициализатора для загрузки системы; Формирование локального репозитория; Создание загрузочного iso-образа# системы и дополнительных образов в случае необходимости; Выкладка iso-образов на сервер для загрузки.


ISO-образ — неформальный термин для обозначения образа оптического диска, содержащего файловую систему стандарта ISO 9660