Сборочный сервер: механизм работы — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Примечания)
 
(не показано 16 промежуточных версий 3 участников)
Строка 1: Строка 1:
== СТРАНИЦА В ПРОЦЕССЕ ПРАВКИ -- НЕ ТРОГАТЬ! ==
+
[[Категория:Сборочная среда ABF]]
 
+
== Компоненты ==
 
+
== Сборочный сервер. Механизм работы. ==
+
 
+
 
Сборочная система состоит из следующих компонентов:  
 
Сборочная система состоит из следующих компонентов:  
 
* Система сборки (Build core)  — компонент, отвечающий непосредственно за сборку пакетов из исходных кодов. Он реализован в виде клиент-серверного приложения;
 
* Система сборки (Build core)  — компонент, отвечающий непосредственно за сборку пакетов из исходных кодов. Он реализован в виде клиент-серверного приложения;
*Система хранения исходных кодов(СХИК) — специализированная системы контроля версий на основе Git#. Обеспечивает версионное хранение исходных кодов пакетов. Также это централизованное место для работы над кодом группы разработчиков;
+
*Система хранения исходных кодов(СХИК) — специализированная системы контроля версий на основе Git <ref>Git — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux.</ref>. Обеспечивает версионное хранение исходных кодов пакетов. Также это централизованное место для работы над кодом группы разработчиков;
 
* Система сборки дистрибутива — компонент, отвечающий за сборку и выпуск продукта. В общем случае это iso-образ дистрибутива;
 
* Система сборки дистрибутива — компонент, отвечающий за сборку и выпуск продукта. В общем случае это iso-образ дистрибутива;
 
* Веб-интерфейс — интерфейс между пользователем и сборочной системой. Представляет доступ ко всем основным функциям системы, а так же ряду дополнительных сервисов.  
 
* Веб-интерфейс — интерфейс между пользователем и сборочной системой. Представляет доступ ко всем основным функциям системы, а так же ряду дополнительных сервисов.  
  
+
== Технологический процесс ==
Технологический процесс работы сборочной системы на участке: ''Пользователь — Система хранения исходных кодов — Система сборки'' показан на рисунке 2.1.1<br/>
+
Технологический процесс работы сборочной системы на участке: ''Пользователь — Система хранения исходных кодов — Система сборки'' показан на рисунке 2.1.1:<br/>
  
  
[[File:Intro 2.1.1.png|frame|Рисунок 2.1.1 “Технологический процесс на участке ''Пользователь — Система хранения исходных кодов — Система сборки''”]]<br/>
+
[[File:Intro 2.1.1.png|frame|none|Рисунок 2.1.1 “Технологический процесс на участке ''Пользователь — Система хранения исходных кодов — Система сборки''”]]<br/>
  
  
Git — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux.
 
  
Рисунок 2.1.1 “Технологический процесс на участке Пользователь — Система хранения исходных кодов — Система сборки”
 
  
  
Технологический процесс работы сборочной системы на участке:
 
Система сборки — Репозиторий показан на рисунке 2.1.2
 
  
Рисунок 2.1.2 “Технологический процесс на участке Система сборки — Репозиторий”
+
Технологический процесс работы сборочной системы на участке: ''Система сборки — Репозиторий'' показан на рисунке 2.1.2:
  
Технологический процесс работы сборочной системы на участке:
 
Система сборки - Репозиторий (Диаграмма 3)
 
  
 +
[[File:Intro 2.1.2.png|frame|none|Рисунок 2.1.2 “Технологический процесс на участке ''Система сборки — Репозиторий''” ]]
  
Рисунок 2.1.3 “Технологический процесс на участке Репозиторий — Система сборки дистрибутива — Дистрибутив”
+
 
 +
 
 +
 
 +
Технологический процесс работы сборочной системы на участке ''Система сборки - Репозиторий'' (Диаграмма 3):
 +
[[File:Intro 2.1.3.png|frame|none|Рисунок 2.1.3 “Технологический процесс на участке ''Репозиторий — Система сборки дистрибутива — Дистрибутив''”]]
 +
  
  
 
Обозначения для диаграмм:
 
Обозначения для диаграмм:
В данных диаграммах процесс показан в общем, множество деталей опущено. Их цель — дать представление о работе сборочной системы.
 
Основным элементом потока данных, с котором происходит работа, является пакет#.
 
Последовательность операций над новым пакетом на рисунке 2.1.1:
 
  
Пакет — файл‐архив, предназначенный для установки с помощью системы управления пакетами.
+
[[File:Diagramm.png|frame|none|]]
 +
В данных диаграммах процесс показан в общем, множество деталей опущено. Их цель — дать представление о работе сборочной системы.
  
Новый пакет из внешнего источника загружается в систему с помощью веб-интерфейса или через гит;
+
== Операции с пакетами ==
Следующий шаг  — сборка пакета;
+
Основным элементом потока данных, с котором происходит работа, является пакет<ref>Пакет — файл‐архив, предназначенный для установки с помощью системы управления пакетами</ref><br/>
Собранный пакет публикуется в репозитории.  
+
Последовательность операций над новым пакетом на рисунке 2.1.1:
 +
#Новый пакет из внешнего источника загружается в систему с помощью веб-интерфейса или через гит;
 +
#Следующий шаг  — сборка пакета;
 +
#Собранный пакет публикуется в репозитории.  
  
  
Процесс сборки пакета представляет собой следующие шаги (отображен на рисунке 2.1.2):  
+
'''Процесс сборки пакета представляет собой следующие шаги''' (отображен на рисунке 2.1.2):  
Создание специального окружения для безопасной и независимой от окружения сборки;
+
*Создание специального окружения для безопасной и независимой от окружения сборки;
Компиляция исходных кодов под определенную архитектуру(если требуется);
+
*Компиляция исходных кодов под определенную архитектуру(если требуется);
Размещение файлов проекта согласно требованиям по расположению файлов в дистрибутиве
+
*Размещение файлов проекта согласно требованиям по расположению файлов в дистрибутиве
Запись контрольных сумм файлов;
+
*Запись контрольных сумм файлов;
Архивирование результата.  
+
*Архивирование результата.  
  
  
Добавление файлов в репозиторий:
+
'''Добавление файлов в репозиторий:'''
перемещение пакета в нужную директорию;
+
*перемещение пакета в нужную директорию;
обновление файлов-индексов о содержащихся в репозитории пакетах.
+
*обновление файлов-индексов о содержащихся в репозитории пакетах.
  
  
 
Главное требование - непротиворечивость данных. Так в репозиторий может прийти сразу несколько обновлений, организуется очередь. В противном случае возможно получить ситуацию, называемой брошенной зависимостью (“broken depends”), когда установка части пакетов не будет возможна, так как они зависят от пакетов, которых нет в репозитории.  
 
Главное требование - непротиворечивость данных. Так в репозиторий может прийти сразу несколько обновлений, организуется очередь. В противном случае возможно получить ситуацию, называемой брошенной зависимостью (“broken depends”), когда установка части пакетов не будет возможна, так как они зависят от пакетов, которых нет в репозитории.  
  
Процесс сборки дистрибутива, представленный на рисунке 2.1.3:  
+
== Процесс сборки дистрибутива ==
Создание безопасного окружения;
+
 
Формирование списка пакетов и их загрузка;
+
'''Процесс сборки дистрибутива''' (представленный на рисунке 2.1.3):  
Установка базовой система;
+
*Создание безопасного окружения;
Установка специфичных пакетов;
+
*Формирование списка пакетов и их загрузка;
Первичная конфигурация;
+
*Установка базовой система;
Копирование файлов в заданные директории;
+
*Установка специфичных пакетов;
Упаковка сформированной системы;
+
*Первичная конфигурация;
Формирование инициализатора для загрузки системы;
+
*Копирование файлов в заданные директории;
Формирование локального репозитория;
+
*Упаковка сформированной системы;
Создание загрузочного iso-образа# системы и дополнительных образов в случае необходимости;
+
*Формирование инициализатора для загрузки системы;
Выкладка iso-образов на сервер для загрузки.  
+
*Формирование локального репозитория;
 +
*Создание загрузочного iso-образа<ref>ISO-образ — неформальный термин для обозначения образа оптического диска, содержащего файловую систему стандарта ISO 9660</ref> системы и дополнительных образов в случае необходимости;
 +
*Выкладка iso-образов на сервер для загрузки.
 +
 
 +
== Примечания ==
 +
{{Примечание|<references />}}
 +
 
  
 +
{{Навигационная полоса|Документация по теме «Сборочная среда ABF»|[[Сборочная среда ABF]]&nbsp;&#8226;&nbsp;[[Краткое руководство по работе в сборочной среде ABF]]&nbsp;&#8226;&nbsp;[[ABF: Руководство пользователя]]&nbsp;&#8226;&nbsp;[[ABF: Руководство администратора]]}}
  
ISO-образ — неформальный термин для обозначения образа оптического диска, содержащего файловую систему стандарта ISO 9660
+
[[en:Build_server_structure_and_workflow]]

Текущая версия на 14:57, 3 марта 2014

Компоненты

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

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

Технологический процесс

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


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




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


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



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

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


Обозначения для диаграмм:

Diagramm.png

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

Операции с пакетами

Основным элементом потока данных, с котором происходит работа, является пакет[2]
Последовательность операций над новым пакетом на рисунке 2.1.1:

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


Процесс сборки пакета представляет собой следующие шаги (отображен на рисунке 2.1.2):

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


Добавление файлов в репозиторий:

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


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

Процесс сборки дистрибутива

Процесс сборки дистрибутива (представленный на рисунке 2.1.3):

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

Примечания

Idea.png
Примечание
  1. Git — распределённая система управления версиями файлов. Проект был создан Линусом Торвальдсом для управления разработкой ядра Linux.
  2. Пакет — файл‐архив, предназначенный для установки с помощью системы управления пакетами
  3. ISO-образ — неформальный термин для обозначения образа оптического диска, содержащего файловую систему стандарта ISO 9660


Документация по теме «Сборочная среда ABF»