Master's Thesis

Holistic Orchestration of Bare Metal Systems

Final Thesis 3.84 MB

Author of thesis: Bc. Matěj Mudra

Acad. year: 2025/2026

Supervisor: Ing. Daniel Dolejška

Reviewer: RNDr. Marek Rychlý, Ph.D.

Abstract:

This thesis investigates how provisioning, orchestration, configuration management, and inventory tracking of Linux machines can be unified into a coherent and reproducible workflow. Existing solutions typically address these lifecycle stages using loosely integrated tools and predominantly imperative approaches, which often lead to configuration drift, fragmented system descriptions, and limited guarantees about correctness and repeatability. These limitations become particularly problematic when managing multiple machines or entire fleets. The first part of the work establishes a conceptual framework that distinguishes provisioning, orchestration, and configuration as separate but interdependent processes. It then surveys and compares representative open-source and commercial platforms, including MAAS, Cobbler, OpenStack Ironic, Red Hat Satellite, SUSE Multi-Linux Manager, and Oracle Enterprise Manager. The analysis highlights structural gaps, especially weak lifecycle guarantees, non-authoritative inventories, and insufficient drift prevention. Based on these findings, a Nix-based architecture is proposed that treats the complete system specification as a single source of truth. The design combines PXE-based provisioning, remote installation using nixos-anywhere, declarative configuration through NixOS modules and flakes, and generation-based rollback. The resulting approach aims to improve reproducibility, reduce operational complexity, and provide consistent lifecycle management through a unified declarative model.

Keywords:

Nix, infrastructure as code, declarative configuration, orchestration, provisioning, NixOS, reproducibility, immutable infrastructure, PXE, Nix flakes, configuration drift, single source of truth, configuration management

Date of defence

24.06.2026

Result of the defence

Defended (thesis was successfully defended)

znamkaBznamka

Grading

B

Process of defence

Student nejprve prezentoval výsledky, kterých dosáhl v rámci své práce. Komise se poté seznámila s hodnocením vedoucího a posudkem oponenta práce. Student následně odpověděl na otázky oponenta a na další otázky přítomných. Komise se na základě posudku oponenta, hodnocení vedoucího, přednesené prezentace a odpovědí studenta na položené otázky rozhodla práci hodnotit stupněm B.

Topics for thesis defence

  1. Vstupy/konfiguraci pro derivaci nasazovaného NixOS systému generujete dynamicky za běhu a zpracováváte pomocí nix flakes, což není běžné použití (není uložena v git). Jaký vliv to má na vyhodnocování derivace? Využívají se existující artefakty v nix-store z předchozích verzí konfigurace nebo se vše vyhodnocuje znovu?
  2. Bylo by možné provést autentizaci stroje žádajícího při boot o obraz systému pro prvotní instalaci, a prokázáním jeho identity tím zabezpečit předávané informace (mj. klíče k API či certifikáty)? Stručně popište jak a diskutujte také zabezpečení přenosu dat.
  3. Technická zpráva několikrát, např. na konci kap. 4.5, zmiňuje možný roll-back k předchozím generacím nasazeného NixOS systému. Využíváte toto ve Vašem řešení, např. pro automatický roll-back po neúspěšném nasazení?
  4. Jak jste váš systém srovnával s exitujícími řešeními? Jaká je hlavní výhoda vašeho systému?

Language of thesis

English

Faculty

Department

Study programme

Information Technology and Artificial Intelligence (MITAI)

Specialization

Software Engineering (NSEN)

Composition of Committee

doc. Ing. Petr Matoušek, Ph.D., M.A. (předseda)
doc. RNDr. Jitka Kreslíková, CSc. (místopředseda)
doc. Ing. Vladimír Janoušek, Ph.D. (člen)
Ing. Libor Polčák, Ph.D. (člen)
Ing. Jan Pluskal, Ph.D. (člen)
Ing. Matěj Grégr, Ph.D. (člen)

Supervisor’s report
Ing. Daniel Dolejška

Student splnil cíle zadání a při řešení úkolu pracoval aktivně, pravidelně a samostatně. Odborný konzultant je také velmi spokojen s jeho aktivitou i pochopením řešené problematiky.

Evaluation criteria Verbal classification
Informace k zadání

Zadání ambiciózně pokrývá širší problematiku systémové architektury, počínaje hardware bez operačního systému a konče konfigurací již nainstalovaného operačního systému a jeho aplikací. Výsledkem práce je integrovaný systém s interaktivním webovým rozhraním, který umožňuje kompletní a komplexní správu strojů a jejich konfigurací. Zadání tedy považuji za náročnější. Nutno také dodat, že vzniklo z vlastní iniciativy studenta.

Aktivita při dokončování

Student v závěrečné fázi práce intenzivně informoval o jejím průběhu a zohlednil poskytnuté připomínky.

Publikační činnost, ocenění

Během práce na projektu propagoval své řešení na sociální platformě Reddit v rámci cílové komunity Nix/NixOS.

Práce s literaturou

Student aktivně a samostatně vyhledával relevantní zdroje.

Aktivita během řešení, konzultace, komunikace

Student začal na práci neformálně pracovat již v předchozím akademickém roce pod vedením odborného konzultanta, ještě před vypsáním zadání. Proaktivně si domlouval pravidelné konzultace s odborným konzultantem, na které chodil připraven s konkrétními problémy a otázkami, které potřeboval v dané chvíli řešit. Tyto konzultace probíhaly i během zimního semestru, kdy byl student na studijním pobytu v zahraničí v rámci programu Erasmus.

Points proposed by supervisor: 96

Grade proposed by supervisor: A

Reviewer’s report
RNDr. Marek Rychlý, Ph.D.

Výsledkem práce je rozsáhlá technický zpráva a složité programové řešení, což však odpovídá náročnějšímu zadání. Srozumitelnosti technické zprávy však mohla být věnována větší pozornost. Celkově považuji práci za lehce nadprůměrnou a navrhuji ji hodnotit stupněm velmi dobře (B).

Evaluation criteria Verbal classification Points
Rozsah splnění požadavků zadání

Evaluation level: zadání splněno

Zadání je splněno bez výhrad.

Rozsah technické zprávy

Evaluation level: přesahuje obvyklé rozmezí

Rozsahem technická zpráva přesahuje obvyklé rozmezí, od úvodu po závěr obsahuje 72 vysázených stran (114 normostran). Text zprávy je informačně velmi bohatý, až místy příliš složitý a nepřehledný. Obsah je však relevantní a uvedené informace jsou pro práci skutečně nezbytné, přestože rychlost sdělení a hustota informací mohla být výrazně nižší.

Prezentační úroveň technické zprávy

Technická zpráva má logickou strukturu, jednotlivé části na sebe dobře navazují. Student však při popisu často zachází do velkých detailů a uvádí důležité informace uvádí příliš brzo, čímž nerespektuje jím stanovenou strukturu zprávy. Např. již od kap. 2 autor popisuje specifikaci vlastního navrhovaného řešení společně s popisem ostatních existujících řešení; zde by bylo vhodnější nejprve uvést současná řešení, tato postupně zanalyzovat a teprve na závěr navázat popisem vlastního řešení. Podobný nevhodný přístup se opakuje i v dalších kapitolách. Náročnost textu je velká již od úvodních kapitol, postupně se tedy nezvětšuje, a text je tak pro čtenáře ze začátku jen obtížně pochopitelný. Výkladu by také prospělo více názorných obrázků a úryvků kódu, např. fragmentů diagramů, které jsou nyní nesmyslně odsunuty až do příloh a kam se text zprávy často odkazuje (např. v kap. 4).

65
Formální úprava technické zprávy

Z hlediska formální úpravy je technická zpráva bez větších nedostatků. Drobné výtky mám k nejednotné sazbě (např. různá sazba "TOOL" na str. 74, či různě velká počáteční písmena v odkazech na kapitoly na str. 78) a k provedení některých diagramů, kde je zbytečně bílé písmo na černém pozadí (např. obr. 5.2), což není v souladu s okolním textem v technické zprávě. Použití anglického jazyka je někdy neobratné, avšak bez větších gramatických či stylistických nedostatků.

75
Práce s literaturou

Seznam použitých zdrojů obsahuje 37 položek, z nichž podstatná část jsou odborné zdroje. Položky jsou popsány a formátovány dle zavedených zvyklostí a v textu práce je dobře patrný způsob a rozsah jejich použití.

85
Realizační výstup

Realizačním výstupem je poměrně složitý systém pro nasazení, správu a sledování konfigurací počítačových systémů s NixOS. Oceňuji použití vhodných technologií, a to jak obecných (např. PXE boot), tak existujících a zavedených řešení pro NixOS (nix flakes, nixos-anywere, disko). Větší důraz mohl být kladen na zabezpečení konfigurací i nasazení (správa tajemství, autentizace strojů, správa stavů mimo deklarativní konfiguraci), na sestavení derivací NixOS konfigurací (optimální využití cache a nix-store vč. případné distribuce) a na diskuzi a využití vlastností a moderních návrhových vzorů specifických pro Nix a NixOS (např. CA derivace, problematika IFD či system.stateVersion, dendritic vzor). Výsledné řešení je však dobře navržené a funkční.

95
Využitelnost výsledků

Výsledky jsou využitelné v praxi pro správu skupiny strojů s NixOS.

Náročnost zadání

Evaluation level: obtížnější zadání

Jedná se o obtížnější zadání vyžadující řešení velké škály různorodých problémů, jako jsou správa hardware i software, orchestrace systémů, síťový boot a nasazení, deklarativní konfigurace, verzování a testování správnosti konfigurace, sledování atd., a to nad poměrně složitou platformou modulů NixOS v deklarativním jazyce Nix.

Topics for thesis defence:
  1. Bylo by možné provést autentizaci stroje žádajícího při boot o obraz systému pro prvotní instalaci, a prokázáním jeho identity tím zabezpečit předávané informace (mj. klíče k API či certifikáty)? Stručně popište jak a diskutujte také zabezpečení přenosu dat.
  2. Vstupy/konfiguraci pro derivaci nasazovaného NixOS systému generujete dynamicky za běhu a zpracováváte pomocí nix flakes, což není běžné použití (není uložena v git). Jaký vliv to má na vyhodnocování derivace? Využívají se existující artefakty v nix-store z předchozích verzí konfigurace nebo se vše vyhodnocuje znovu?
  3. Technická zpráva několikrát, např. na konci kap. 4.5, zmiňuje možný roll-back k předchozím generacím nasazeného NixOS systému. Využíváte toto ve Vašem řešení, např. pro automatický roll-back po neúspěšném nasazení?
Points proposed by reviewer: 85

Grade proposed by reviewer: B

Responsibility: Mgr. et Mgr. Hana Odstrčilová