V průběhu vývoje Fedory 26 přibylo do instalátoru Anaconda celkem dost zajímavých novinek. V tomto článku si představíme ty nejdůležitější a nejzajímavější z nich.

Blivet GUI

Nejviditelnější novinkou v Anacondě je pravděpodobně integrace nástroje Blivet GUI, který do instalátoru přináší nové řešení správy a nastavení úložiště.

 

V předchozích vydáních byly k dispozici dvě možnosti, jak nastavit disky, na které se Fedora bude instalovat: automatické dělení disku a manuální. Automatické dělení je určeno především pro jednoduché instalace, kdy se Fedora instaluje na celý disk, nebo vedle jiného, již nainstalovaného, systému. Manuální dělení disku umožňuje větší kontrolu a složitější nastavení.

 

V současné době dostupný nástroj “Ruční rozdělení disků” je svým způsobem unikátní. Místo toho, aby si uživatel vytvářel všechny komponenty budoucího rozdělení ručně, tak pouze specifikuje budoucí přípojné body a jejich vlastnosti. Například uživatel řekne, že se mají vytvořit dva přípojné body pro domovský adresář “/home” a kořenový adresář “/” a nastaví, že mají být zašifrované a na RAIDu. Anaconda již sama vytvoří všechny potřebné komponenty skryté pod tímto nastavením. Tato metoda sestavení “shora dolů” umožňuje skutečně snadné nastavení, ale pro některé komplikované situace může být až příliš zjednodušující.

 

Tady může pomoci Blivet GUI, nástroj pro nastavení úložiště, který pracuje klasickým způsobem. Pokud chce uživatel vytvořit LVM na RAIDu, musí ručně vytvořit všechna potřebná zařízení -- od oddílů přes RAID pole až po samotné LVM -- a to vše “zespoda nahoru”. Takto lze vytvořit i velmi komplikovaná úložiště, ale za cenu toho, že to není zdaleka tak jednoduché a je třeba vědět, co přesně, kdy a s jakými parametry vytvořit.

 

Nástroj Blivet GUI je ve Fedoře dostupný již od verze 21 a to jako běžná desktopová aplikace. Nyní bude dostupný také v Anacondě jako třetí možnost pro dělení disků. Pro použití Blivet GUI je třeba v okně “Cíl instalace” vybrat možnost “Vlastní pokročilé (Blivet-GUI)”.

 

Popisek: Okno Cíl instalace v instalátoru Anaconda

 

Nástroj Blivet GUI je plně integrovaný do Anacondy a jeho použití se v zásadě neliší od použití druhých dvou nástrojů pro dělení disků. Budou dostupné pouze disky, které si předem vyberete v okně “Cíl instalace”, a žádné změny se neprovedou, dokud neopustíte okno Blivet GUI a nerozhodnete se zahájit instalaci. Po vybrání Blivet GUI se také můžete rozhodnout jít zpět a použít automatické nebo původní manuální dělení disků, pokud se rozhodnete, že vám více vyhovují (v tomto případě se ale změny provedené v Blivet GUI zahodí).

 

img src="https://vtrefny.fedorapeople.org/blivet-gui/anaconda/bg-anaconda-2.png">
Popisek: Dělení disků pomocí Blivet GUI v Anacondě

 


Popisek: Přidávání nového zařízení pomocí Blivet GUI v Anacondě.

Novinky v automatické instalaci (kickstart)

 

Kickstart je název formátu souborů určených pro nastavení automatické instalace. Pomocí kickstart souborů lze provést všechna nastavení, která jsou dostupná v grafickém i textovém rozhraní instalátoru Anaconda (a v některých případech i některá další). Více informací o kickstart souborech a jejich použití se můžete dozvědět z dokumentace.

Podpora parametrů --nohome, --noswap a --noboot v automatickém dělení disku

Speciální kickstart příkaz “autopart” umožňuje nechat dělení disku na instalátoru, který automaticky vytvoří oddíl pro systém (“/”, root), bootovací oddíl (“/boot”) a odkládací oddíl (swap). Při instalaci Fedora Workstation je navíc ještě vytvořen (při dostatečně velkém disku) domovský oddíl (“/home”). Toto chování je nově možné ovlivnit pomocí přepínačů --nohome, --noswap a --noboot, těmi instalátoru řeknete, že tyto konkrétní oddíly nechcete při instalaci vytvářet.

Striktní validace kickstart souboru s inst.ksstrict

Kickstart soubory mohou být často velmi komplikované a může tak být těžké vyvarovat se chyb. Anaconda před začátkem instalace provádí automatickou kontrolu kickstart souboru, jejíž výsledkem mohou být různé chyby a upozornění. Pokud je detekována chyba, vypíše se na obrazovku a instalace se přeruší. Upozornění se však vypisují pouze do logů a na pokračování instalace nemají vliv.

Pokud chcete mít jistotu, že se instalace přeruší v případě chyb i upozornění, lze takové chování vynutit bootovacím parametrem inst.ksstrict. To způsobí, že i upozornění budou považována za chyby.

Podpora snapshotů

 

Jsou případy, kdy by se hodilo před započetím instalace nového systému uložit stav systému starého či vytvořit zálohu čerstvě nainstalovaného systému v “čistém” stavu. Takovéto zálohy se můžou velmi hodit pokud se později vyskytnou nějaké potíže.

 

Právě za tímto účelem byl přidán nový kickstart příkaz nazvaný “snapshot”.  Pro podrobnosti o tom, jak se příkaz snapshot používá můžete nahlédnout do dokumentace projektu Pykickstart.

 

Příkaz snapshot je v tuto chvíli podporován pouze pro logické oddíly typu LVM thin pool. Pokud máte zájem i pro podporu dalších typů oddílu otevřete prosím nové RFE na Bugzille.

Vylepšená podpora síťování

Vzhledem k tomu, že částečná (použití softwarových repozitářů ze sítě) nebo úplná (kdy je ze sítě nahráno i samotné instalační prostředí) síťová instalace patří mezi často používané instalační metody je konfigurace sítových zařízení podstatnou částí Anacondy. Specifická nastavení sítě mohou být nezbytná také při instalaci na síťová bloková zařízení (používající iSCSI a FCoE technologie). Anaconda umožňuje pokročilá nastavení sítě jak pro instalační prostředí tak pro instalovaný systém. Také toto vydání Fedory zahrnuje opravy a vylepšení týkající se možností nastavení sítě.

 

Tentokrát jsme se zaměřili hlavně na opravy chyb u komplexnějších konfigurací (agregace síťových zařízení - bonding, teaming) a opravy související s přechodem na novou verzi NetworkManageru. Ten instalátor používá pro konfiguraci sítě. Jednalo jak o opravy na straně Anacondy tak o odhalování a hlášení problémů opravených na straně NetworkManageru. Časnější odhalování chyb při konfiguraci sítě způsobené přechodem na novější verze u komponent používaných instalátorem bylo jednou z hlavních motivací pro významné rozšíření testovací sady kickstart testů pro síťová nastavení. Co se nové funkcionality týká, přidali jsme:

  • podporu konfigurace IPoIB zařízení do textového uživatelského rozhraní
  • podporu pro základní nastavení bridge v raném stádiu instalace (například pro stažení kickstartu)
  • novou volbu inst.waitfornet umožňující explicitně vyžádat čekání na síťové připojení využitelnou u některých méně obvyklých nastavení síťového prostředí kdy pokračování instalačního procesu po prvním neúspěchu DHCP konfigurace není žádoucí

 

Další vylepšení

Dokumentace pro Anacondu a Pykickstart na Read the Docs

Dokumentace pro Anacondu a Pykickstart je nově k dipozici i na platformě pro hostování dokumentace ReadTheDocs:

 

 

Dokumentace pro Pykickstart nově taky obsahuje podrobný přehled jednotlivých příkazů - jak pro Fedoru tak pro RHEL. Přehled je navíc nyní generovaný automaticky ze zdrojových kódů projektu Pykickstart, takže jakékoli relevantní změny v kódu se automaticky objeví prakticky okamžitě i v přehledu příkazů v dokumentaci.

Zpětná vazba během všech fází instalace

Taky nemáte rádi když během instalace Anaconda po mnoho minut ukazuje pouze “provádění post-instalačních úkonů” bez jakékoli další informace o tom, co se vlastně děje a jak dlouho to asi ještě bude trvat? V tom případě už nemusíte dále zoufat, jelikož jsme to ve Fedoře 26 konečně opravili! 🙂

 

Důvod pro předchozí nedostatek zpětné vazby byl jednoduchý - během finální fáze RPM transakce běží post a postrans skriptlety, jejichž vykonání může trvat poměrně dlouho. RPM a DNF donedávna o průběhu této fáze transakce neposkytovali dostatek informací, a proto ani Anaconda nemohla uživateli podrobněji říct, co se během této instalační fáze přesně děje.

 

Tyto nedostatky však byly napraveny. RPM i DNF nyní poskytují potřebná data o průběhu této části RPM transakce, díky čemuž nyní Anaconda může uživateli konečně poskytnou detailní zpětnou vazbu o tom, co se děje v průběhu všech instalačních fází! 🙂

Textové rozhraní nástroje Initial Setup nově běží na všech použitelných konzolích

Initial Setup je nástroj umožňující (do)nastavit nově nainstalovaný systém při jeho prvním startu.

Initial Setup poskytuje jak grafické tak i textové rozhraní - v podstatě se jedná o spouštěč konfiguračních obrazovek, se kterými se uživatel může setkat v Anacondě.

 

Zatímco během běžné instalace je všechno nastaveno již v Anacondě a Initial Setup už většinou nemá co nastavovat, je situace na ARMových systémech podprovaných Fedorou přesně opačná. Zde k instalaci pomocí Anacondy většinou vůbec nedojde a uživatelé místo toho kopírují předpřipravený obraz Fedory na SD kartu, ze které poté ARMový systém nabootují.

Z Initial Setup se tak stává nezbytný nástroj, který umožňuje uživatelům nastavit předpřipravený obraz Fedory k obrazu svému.

 

Na ARMových systémech je většinou používáno textové rozhraní nástroje Initial Setup. Během vývoje Fedory 25 však byly nalezeny dva nepříjemné problémy s tímto rozhraním:

  • některé ARMové systémy mají jak sériové tak grafické konzole a není možné rozumně zjistit kterou konzoli uživatel právě používá
  • některé konzole na ARMových systémech vypadají funkčně, ale selžou, jakmile se je Initial Setup pokusí použít pro spuštění textového rozhraní

 

Řešení těchto dvou problémů je poměrně netradiční - jednoduše spustíme textové rozhraní nástoje Initial Setup na všech konzolích, které vypadají použitelně. To vyřeší první problém - textové rozhraní poběží jak na sériových tak na grafických konzolích. A stejně tak bude vyřešen i problém druhý - nefunkční konzole budou přeskočeny.

 

Implementace tohoto řešení se uskutečnila v rámci vývoje Fedory 26. Uživatelé na ARMu se tak mohou těšit na výrazně robustnější konfigurační rozhraní nástoje Initial Setup.

Nápověda je nyní k dispozici i pro textové rozhraní

Textové rozhraní Anacondy je zjednodušenou alternativou grafického rozhraní využívající pouze textový výstup, který navíc nikdy nepřepisuje již vypsané části obrazovky. Textové rozhraní díky tomu velmi dobře funguje například na sériových a specializovaných mainframových konzolích (zdravíme s390! 😉 ).

 

Fedora 26 do textového rozhraní přináší jednu poměrně podstatnou novinku - systém nápovědy, doposud dostupný pouze v grafickém rozhraní je nyní k dispozici i v rozhraní textovém. Vyvolání nápovědy pro aktuální obrazovku provedete stisknutím písmena “h”.

Byl přidán nový skript pro sběr logovacích souborů

Skript zvaný log-capture, pocházející od komunitního přispěvatele Pata Rieheckyho, je nyní k dispozici v instalačním prostředí a umožňuje jednoduchý sběr relevantních logů do tar archivu, který lze pak snadno přenést mimo instalační prostředí k další analýze.

 

Hlavní předpokládané použití log-capture skriptu je v kickstartech v návěstí %onerror, je však vhodný i pro obecné ladění instalátoru a příbuzných komponent.

Rozšiřitelná validace rozdělení disků

Chování Anacondy během instalace je možné pozměnit za pomoci tzv. “instalačních tříd”. Instalační třída umožňuje upravit základní nastavení instalace, nastavení sítě, základní nastavení úložiště a automatické dělení disků. Pokud však uživatel zvolil manuální dělení disků,

nebylo možné ověřit, zda rozdělení disků odpovídá požadavkům instalační třídy.

 

Z tohoto důvodu je instalačním třídám umožněno upravit validaci rozdělení disků. Mají možnost odebrat stávající kontroly, přidat nové a upravovat omezení kladená na dělení disků.

Strukturované instalační úkony

Anaconda se stará během instalace o hodně věcí (nastavení úložišť, instalace softwarových balíků,  vytvoření uživatelský účtů a skupin, atd.). Pro jednodušší sledování průběhu instalace a snadnější ladění byl průběh instalace rozčleněn na jednotlivé funkční celky - instalační úkony (např. vytvoření uživatele, vytvoření skupiny uživatelů, nastavení účtu superuživatele). Instalační úkony lze dále sdružovat do skupin instalačních úkonů (např. vytvoření uživatelských účtů a skupin).

 

Díky tomu lze nyní z instalačních logů snadno zjistit:

  • jak dlouho jednotlivé úkony trvaly
  • který úkon právě běží
  • kolik úkonů (a skupin úkonů) již bylo zpracováno a kolik ještě zbývá

Konfigurační soubor interakce s uživatelem

Anaconda nyní podporuje práci s konfiguračním souborem interakce s uživatelem. Jedná se o speciální konfigurační soubor, jež zaznamenává, které konfigurační obrazovky již uživatel viděl a (volitelně) se kterými nastaveními na těchto obrazovkách manipuloval.

 

Hlavním důvodem ke vzniku tohoto konfiguračního souboru je fakt, že uživatel v průběhu instalace obvykle přijde do kontaktu s několika různými nástroji (Anaconda, Initial Setup, Gnome Initial Setup či hypotetický nástroj pro výběr jazyka na live CD). V takovém případě dává smysl ukázat každou konfigurační obrazovku právě jednou a neukazovat uživateli pořád dokola to, co už nastavil dříve. To by mělo bez ztráty funkčnosti pomoci zredukovat počet obrazovek, přes které se uživatel během instalace musí proklikat, a obecně zrychlit instalaci z pohledu uživatele.

 

Avšak nepředbíhejme - zatím je naimplementována podpora pro tento konfigurační soubor pouze v Anacondě. Anaconda do konfiguračního souboru zaznamená, které obrazovky uživatel navštívil, a schová obrazovky označené jako navštívené. Další nástroje (jako např. Gnome Initial Setup) zatím ještě podporu pro tento konfigurační formát nemají.
Avšak naštěstí to vypadá, že nebudeme čekat dlouho - vývojáři nástroje Gnome Intial Setup již ohlásili záměr začít používat konfigurační soubor interakce s uživatelem od  Fedory 27.