Přístupnostní navigace
E-application
Search Search Close
Master's Thesis
Author of thesis: Bc. Matěj Mudra
Acad. year: 2025/2026
Supervisor: Ing. Daniel Dolejška
Reviewer: RNDr. Marek Rychlý, Ph.D.
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.
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)
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
Language of thesis
English
Faculty
Fakulta informačních technologií
Department
Department of Information Systems
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 reportIng. 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.
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.
Student v závěrečné fázi práce intenzivně informoval o jejím průběhu a zohlednil poskytnuté připomínky.
Během práce na projektu propagoval své řešení na sociální platformě Reddit v rámci cílové komunity Nix/NixOS.
Student aktivně a samostatně vyhledával relevantní zdroje.
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.
Grade proposed by supervisor: A
Reviewer’s reportRNDr. 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 level: zadání splněno
Zadání je splněno bez výhrad.
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žší.
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).
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ů.
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í.
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í.
Výsledky jsou využitelné v praxi pro správu skupiny strojů s NixOS.
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.
Grade proposed by reviewer: B
Responsibility: Mgr. et Mgr. Hana Odstrčilová