Systém Freeconf pro generování konfiguračních souborů

Cíl:

Cílem tohoto projektu je vytvořit systém, který výrazně zjednoduší konfigurování rozsáhlých informačních systémů, ale i malých jednoduchých aplikací. Původně vznikl jako snaha vytvořit jednotné konfigurační prostředí pro linuxové distribuce. Později se ukázala možnost mnohem širšího využití i na jiných platformách jako třeba mainframe. Někdy se uvádí, že až 80% problémů v IT je způsobeno špatnými konfiguracemi. Je překvapivé, že se doposud málokdo zabýval systematizací procesu konfigurování. Freeconf se o toto pokouší.

Stručný popis:

Freeconf je stavěn zejména pro konfigurování systémů využívající textové konfigurační soubory. Vývojář, ale třeba i uživatel, podle dostupné dokumentace vytvoří popis konfiguračního formátu. Ten obsahuje jednotlivá konfigurační klíčová slova, vztahy mezi nimi a případně i hierarchické uspořádání. Pro tento účel existuje i jednoduchá aplikace, která má tento krok zjednodušit. Výsledný popis pak zpracuje knihovna libfreeconf a spolu s vhodným klientským programem vytvoří grafické rozhraní. Uživatel pak může provést potřebné nastavení. Systém Freeconf si vytvořenou konfiguraci uloží a zároveň vygeneruje konfigurační soubor čitelný konfigurovanou aplikací. Ten uloží na vhodné místo v systému.

Co už systém umí?

  • existuje aplikace pro GUI postavená na knihovně Qt
  • snadná podpora vícejazyčných konfigurací
  • skrývání nepodstaných konfiguračních klíčů, čímž zlepšuje orientaci při nastavování
  • ohlídání konzistence konfigurace tj. zda všechny konfigurační klíče obsahují přípustné hodnoty a zda jsou nastaveny všechny potřebné klíče
  • konfigurování systémů se zásuvnými moduly
  • je rozpracován systém skriptování, který by mohl provádět autodetekce a další úkony ke zjednodušení konfigurování

Co se plánuje?

  • podpora dalších grafických knihoven, jako Gtk, Gnome, KDE, ale také podpora textového režimu nebo nastavování pomocí webového prohlížeče
  • zaměření spíše na konfigurování systému, než jednotlivých aplikací tj. říci, jakou funkcionalitu chci, a Freeconf nechť sám vhodně nastaví potřebné aplikace
  • transformace konfigurací tj. pokud jednou nakonfiguruji např. klienta pro čtení e-mailů a později se rozhodnu využívat jiný, měl by být Freeconf schopný využít již známou konfiguraci z původního programu a nakonfigurovat ten nový
  • ukládání historie změn
  • analýza chyb v konfiguraci tj. pokud v systému náhle začne docházet k chybám, zanalyzovat podle historie změn, která změna mohla chybné chování způsobit
  • podpora pro konfigurování sítí

Freeconf je bezesporu ojedinělý přístup ke konfigurování. Nejde o náhradu systemového registru, který využívá systém MS Windows!!!. Existují podobné nástroje, ale zaměření Freeconfu je mnohem širší a obecnější. Jiné projekty se buď zaměřují jen na konfiguraci jednoho nebo úzké skupiny programů nebo jsou naopak obecné, ale příliš akademické a nedají se použít na reálné problémy. V případě úspěšné implementace některého z výše uvedených bodů by mohlo jít o velmi úspešný systém.

Informace pro zájemce:

Systém je vyvíjen v jazyce Python pro rychlejší vývoj. Bohatě pokryje bakalářskou práci, výzkumný úkol i diplomovou práci. Ve spolupráci s katedrou kybernetiky na FEL ČVUT umožňuje katedra matematiky FJFI ČVUT zabývat se tímto tématem i v rámci doktorského studia. Toto téma je také dobrou motivací pro studium logiky a umělé inteligence.

Kdo už na tomto tématu pracoval?

  • David Fabian
    • Systém pro konfiguraci operačních systémů typu Open Source, výzkumný úkol 2009 - prezentace
    • Systém pro zjednodušené generovaní konfigurací, diplomová práce 2011
  • Jan Ehrenberger
    • Konfigurace operačních systémů typu Open Source, bakalářská práce 2010 - prezentace
    • Systém pro konfiguraci operačních systémů, výzkumný úkol 2011
  • Rolinek František
    • Systém pro konfiguraci operačních systémů typu Open source, bakalářské práce 2007 - prezentace
    • Systém pro konfiguraci operačních systémů typu Open source, výzkumný úkol 2008 - prezentace
    • Systém pro konfiguraci operačních systémů typu Open Source, diplomová práce 2009 - prezentace