MASARYKOVA UNIVERSITA V BRNĚ FAKULTA INFORMATIKY
Nástroje pro automatickou a bezobslužnou instalaci uživatelských stanic BAKALÁŘSKÁ PRÁCE
Pavel Tuček
2005
Prohlášení Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně. Všechny zdroje prameny a literaturu, které jsem při vypracování používal nebo z nich čerpal, v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Poděkování Na tomto místě bych rád poděkoval vedoucímu práce Bc. Ondřeji Krajíčkovi, konzultantům Mgr. Martinu Osovskému a Mgr. Lukáši Rychnovskému za vstřícný přístup při řešení mé bakalářské práce, za užitečné rady, odbornou pomoc a především za trpělivost, kterou se mnou měli.
Shrnutí Automatická a bezobslužná instalace uživatelských stanic s sebou přináší řadu výhod. Tato práce shrnuje přehled nástrojů a metod dostupných v dnešní době. Zároveň nabízí kritéria, podle kterých dokážeme určit, jak se které nástroje a metody hodí pro praktické nasazení.
Klíčová slova automatická a bezobslužná instalace, Unattended, Automated Network Installations (ANI), Microsoft Remote Installation Services (RIS), Real Men Don't Click, image, Norton Ghost
Obsah 1
Úvod.................................................................................................................................................. 3 1.1 Zadání projektu .......................................................................................................................... 3 1.2 Shromaždění informací a porovnání možností........................................................................... 3 1.3 Demonstrace............................................................................................................................... 4 2 Analýza projektů ............................................................................................................................... 5 2.1 Metody instalace a nástroje ........................................................................................................ 5 2.1.1 Disk Imaging ....................................................................................................................... 5 2.1.2 OS distribution point........................................................................................................... 5 2.2 Aktuální situace na CPS ÚVT MU ............................................................................................ 6 2.3 Porovnání metod a nástrojů a ideální situace ............................................................................. 6 2.3.1 Výhody a nedostatky jednotlivých metod ........................................................................... 6 2.3.2 Ideální řešení ....................................................................................................................... 7 2.3.3 Analýza nástrojů.................................................................................................................. 7 2.3.3.1 MS Remote Installation Services (RIS) ....................................................................... 7 2.3.3.2 Real Men Don't Click................................................................................................... 8 2.3.3.3 Automated Network Installations (ANI) ...................................................................... 8 2.3.3.4 Unattended ................................................................................................................... 8 2.3.3.5 Závěr analýzy ............................................................................................................... 8 3 Unattended ........................................................................................................................................ 9 3.1 Historie....................................................................................................................................... 9 3.2 Příprava prostředí pro vzdálenou instalaci ............................................................................... 10 3.2.1 Vytvoření distribučního bodu operačního systému........................................................... 10 3.2.1.1 Vytvoření sdíleného prostoru ..................................................................................... 10 3.2.1.2 Integrace DJGPP ........................................................................................................ 11 3.2.1.3 Přenesení instalačních souborů .................................................................................. 11 3.2.1.4 Integrace service packů .............................................................................................. 12 3.2.1.5 Integrace hotfixů ........................................................................................................ 12 3.2.1.6 Integrace driverů ........................................................................................................ 14 3.2.2 Vytvoření bootovacího média ........................................................................................... 14 3.2.2.1 Bootování z diskety .................................................................................................... 15 3.2.2.2 Bootování z CD-ROM ............................................................................................... 16 3.2.2.3 Bootování ze sítě ........................................................................................................ 16 3.2.2.4 Úprava instalačního média ......................................................................................... 17 3.2.3 Příprava dalšího uživatelského softwaru ........................................................................... 17 3.2.3.1 Proces instalace uživatelského softwaru .................................................................... 18 3.2.3.2 Struktura sdíleného prostoru install............................................................................ 18 3.2.3.3 Řídící skript todo.pl.................................................................................................... 18 3.3 Vytvoření a úpravy souboru unattend.txt................................................................................. 19 3.3.1 Vytvoření souboru unattend.txt......................................................................................... 20 1
4 A B C
3.3.1.1 Namountování síťové jednotky Z:.............................................................................. 20 3.3.1.2 Rozdělení harddisku ................................................................................................... 20 3.3.1.3 Formátování ............................................................................................................... 20 3.3.1.4 Výběr operačního systému ......................................................................................... 20 3.3.1.5 Product key................................................................................................................. 21 3.3.1.6 Název pracovní stanice............................................................................................... 21 3.3.1.7 Organizace a uživatelské jméno ................................................................................. 21 3.3.1.8 Místní administrátorské heslo .................................................................................... 21 3.3.1.9 Přihlášení se do domény............................................................................................. 21 3.3.1.10 Přihlášení do pracovní skupiny .................................................................................. 21 3.3.1.11 Výběr aplikačních balíků ........................................................................................... 21 3.3.1.12 Závěrečné úpravy ....................................................................................................... 22 3.3.2 Úpravy souboru unattend.txt ............................................................................................. 22 3.3.2.1 Uvedení ...................................................................................................................... 22 3.3.2.2 Syntaxe unattend.txt ................................................................................................... 22 3.3.2.3 Dokumentace společnosti Microsoft .......................................................................... 23 3.3.2.3 Nastavení použité Windows Setupem........................................................................ 23 3.3.2.4 [_meta] sekce.............................................................................................................. 24 3.3.2.5 Konfigurace použitím skriptu config.pl ..................................................................... 25 Závěr ............................................................................................................................................... 27 unattend.txt...................................................................................................................................... 29 config.pl........................................................................................................................................... 31 CD s přílohami, programy a zdrojovými kódy................................................................................ 34
2
Kapitola 1 Úvod Instalace většího množství počítačů s operačním systémem Windows 2000 či Windows XP a následně dalších aplikací pro běžnou práci na počítači je nejen pracná, ale především časově náročná. Takovou instalaci je možné zjednodušit tzv. automatickou a bezobslužnou instalací uživatelských stanic. Tento postup má jednu nevýhodu a to, že je potřeba celou instalaci připravit na síťovém serveru a to zabere určitý čas. Naproti tomu nabízí hned několik výhod: •
•
• •
1.1
Menší časová náročnost a pracnost – jediné co musí administrátor udělat, je spustit instalaci z bootovacího média a dál se nemusí o nic starat. Instalace proběhne od až do konce v jeho nepřítomnosti. Možnost instalovat současně větší počet stanic – protože instalační soubory jsou přístupné po síti, tak můžeme najednou instalovat klidně všechny stanice v síti, bez obav jestli je dostatek bootovacích CD-ROM. Jednodušší správa instalačních souborů – do instalačních souborů na file serveru se dají relativně jednoduše integrovat service packy, hotfixy, případně potřebné drivery. Snadná instalace dalšího uživatelského softwaru – po skončení instalace operačního systému je možné pomocí postinstalačních procesů nainstalovat z file serveru veškerý potřebný software pro pracovní stanice.
Zadání projektu
Shromážděte a popište existující nástroje pro automatickou a bezobslužnou instalaci uživatelských stanic. Popište stručně nedostatky existujících postupů. Navrhněte a implementujte postup pro automatickou a bezobslužnou instalaci operačního systému a aplikací (vč. automatické konfigurace) na uživatelské stanice. Instalační soubory a konfigurační data musejí být uložena centrálně s možností snadného rozšíření (aktualizace, bezpečnostní opravy, nové aplikace). Navržený postup prakticky demonstrujte v CPS ÚVT MU, s využitím SW nástrojů, které jsou v CPS dostupné popř. jsou volně k dispozici jako free software. Použité nástroje musejí být dostatečně stabilní, aby byly schopny produkčního nasazení.
1.2
Shromáždění informací a porovnání možností
V první části mého projektu jsem se zabýval získáváním informací o jednotlivých metodách automatické a bezobslužné instalace, zjišťoval jsem výhody a nedostatky jednotlivých metod.
3
Následně jsem hledal konkrétní projekty, které se automatické bezobslužné instalaci věnují a mnou upřednostněné metody používají. S několika projekty jsem se podrobněji seznámil a z nich jsem vybral jeden, který nejlépe splňuje zadané podmínky.
1.3
Demonstrace
Seznámil jsem se dopodrobna s vybraným projektem. Zajistil jsem si potřebné HW a SW prostředky v CPS ÚVT MU, další potřebný volně dostupný software a projekt jsem prakticky demonstroval.
4
Kapitola 2 Analýza projektů V první části bakalářské práce je mým záměrem popsat existující metody a nástroje pro automatickou a bezobslužnou instalaci operačního systému a aplikací na uživatelské stanice a najít jejich možnosti a hranice. Nejprve se stručně podíváme na jednotlivé metody, poté se seznámíme s jednotlivými projekty a na závěr vybereme ten nejvhodnější.
2.1
Metody instalace a nástroje
Hledal jsem pečlivě, ale našel jsem pouze dvě základní metody, které se vyskytují s drobnými obměnami. Jedná se o Disk Imaging (klonování disků) a OS distribution point (distribuční bod operačního systému).
2.1.1
Disk Imaging
Disk Imaging – česky klonování disků. Jedná se v podstatě o zkopírování pevného disku již plně funkční pracovní stanice s kompletně nainstalovaným softwarem na disky ostatních stanic, a to takovým způsobem, že se pevný disk po zkopírování chová jako systémový. Image se umístí na server do sdíleného adresáře, aby bylo možné ho namapovat a image odtud stáhnout a nainstalovat. Takto fungují například Microsoft Remote Installation Services (RIS), Norton Ghost (pro DOS, Windows, OS/2 i Linux).
2.1.2
OS distribution point
Na serveru se vytvoří adresář, který je sdílený v síti. Do adresáře se nakopírují instalační soubory z instalačního média a důležitý soubor unattend.txt. Jedná se o textový soubor pro zaznamenávání odpovědí z řady dialogových oken rozhraní Windows Setup. Tento soubor odpovědí lze vytvořit nebo měnit v textovém editoru nebo prostřednictvím Průvodce správcem instalace setupmgr.exe. Tento nástroj je možné nalézt na instalačním médiu Windows 2000 a Windows XP v souboru „CD-ROM“:\support\tool\deploy.cab. Tento systém využívají například nástroje Automated Network Installations (ANI), Unattended a další.
5
2.2
Aktuální situace na CPS ÚVT MU
Aktuální proces automatické a bezobslužné instalace operačního systému a aplikací na uživatelské stanice na CPS ÚVT MU je založen na metodě Disk Imaging. V imagi je kromě operačního systému Windows 2000 SP4 také kancelářský balík MS Office a několik dalších balíčků softwaru, které znatelně zasahují do systému. Image je udržována ve dvou verzích, přičemž první má v sobě zakomponovaný postconfig, který stanici po restartu přidá do domény, pojmenuje ji a vytvoří v nabídce Start odkazy na další balíčky softwaru, které se nainstalují na vyžádání uživatele. Druhá verze je bez postconfigu a je určená pro další úpravy. Image je sdílena na file serveru a v případě potřeby je pomocí programu Norton Ghost přenesena na cílovou stanici.
2.3
Porovnání metod a nástrojů a ideální situace
Názory na užívání jednotlivých metod a nástrojů se liší. Předložím tedy výhody i nedostatky jednotlivých metod, popíši ideální řešení a podrobím vybrané nástroje analýze, který z nich má k ideálnímu řešení nejblíže.
2.3.1
Výhody a nedostatky jednotlivých metod
Výhody Disk Imagingu: • snadná instalace • loadem image získám funkční stanici vybavenou jak operačním systémem, tak dalším softwarem a také patřičně nakonfigurovanou • load typické image disku s Windows 2000 a Office 2000 zabere přibližně 10 minut • možnost loadu ze sítě • časem ověřená metoda Nedostatky Disk Imagingu: • pro každou hardwarovou konfiguraci stanice je nutné udržovat vlastní image • náročná integrace service packů a hotfixů – v podstatě je nutné vytvořit novou image • pokud bychom měly v imagi zakomponované různé softwarové vybavení pro jednotlivé skupiny pracovních stanic, tak musí udržovat image pro každou skupinu stanic zvlášť nebo bude potřeba ještě dodatečná instalace softwarových balíků • pokud máme na stanicích různé operační systémy, tak pro každý potřebujeme opět vlastní image • pokud se zkombinují předchozí možnosti, tak se počty imagí, které je třeba udržovat násobí • nutnost nainstalovat jednu pracovní stanici „tradiční“ metodou (a z ní vytvořit image) pro každou udržovanou image 6
Výhody OS distribution point: • snadná instalace • snadná integrace service packů a hotfixů • možnost instalace ze sítě • v jednom OS distribution pointu může být více operačních systémů • stanice bude po instalaci plně funkční, ať je její hardwarové vybavení jakékoliv Nedostatky OS distribution point: • instalace není tak rychlá jako Disk Imaging Obě varianty vyžadují pro síťové instalace file server, DHCP server, WINS server a/nebo DNS server, ale ty stejně ve většině sítí jsou, takže jsem to mezi nedostatky neuváděl.
2.3.2
Ideální řešení
Ideální řešení by mělo splňovat tyto požadavky: • snadná instalace • instalační soubory a konfigurační data musejí být uložena centrálně • možností snadného rozšíření (aktualizace, bezpečnostní opravy, nové aplikace). • nástroje musejí být dostatečně stabilní, aby byly schopny produkčního nasazení • síťová instalace založená na bootování ze sítě podle specifikace PXE • automatická konfigurace nainstalované stanice pro připojení do sítě • instalace softwarových balíků musí být součástí automatické a bezobslužné instalace • dobrá možnosti konfigurace instalace
2.3.3
Analýza nástrojů
Zde jen krátce popíši jednotlivé nástroje, ze kterých jsem vybíral ten nejvhodnější.
2.3.3.1
MS Remote Installation Services (RIS)
RIS je nástroj vytvořený přímo společností Microsoft jako volitelná komponenta Windows 2000 Serveru. Jedná se o skvěle zdokumentovaný nástroj a na webu www.microsoft.com je k němu téměř „krok-za-krokem“ postup, jak tuto automatickou instalaci síti připravit, nakonfigurovat a využívat. Bohužel, jak bývá u Microsoftu zvykem, abyste mohli tento nástroj „úspěšně“ využívat musíte kromě DHCP serveru a DNS serveru nainstalovat a provozovat také službu Active Directory. Jenže
7
tuto službu vůbec nepotřebujeme. Navíc se jedná o systém založený na Disk Imagingu a ten je bohužel ideální bezobslužné instalaci trochu vzdálený.
2.3.3.2
Real Men Don't Click
Projekt vznikl na jaře 2000. Skupina administrátorů se pokusila vytvořit plně automatický instalátor pro Windows 2000. Za téměř 5 let se tento projekt stal nadějným kandidátem pro bezobslužnou instalaci pracovních stanic. Bohužel stejně jako MS RIS používá Disk Imagingu a to si myslím, že je velká škoda.
2.3.3.3
Automated Network Installations (ANI)
Opravdu vynikající projekt. Instalační soubory operačního systému se umístí na připravený server dosažitelný po síti. Vybraná stanice nabootuje a spustí se síťová instalace systému. Po jejím dokončení se automaticky nainstaluje vybraný balík softwaru, počítač je připojen do domény Windows a po dokončení instalace je odeslán mail správci sítě, že instalace je ukončena. K tomu všemu nechybí přehledný web a srozumitelné návody. Bohužel ANI nepodporuje spuštění automatické a bezobslužné instalace nabootováním ze sítě. Je to jediný požadavek, který tento projekt nesplnil v porovnání s ideální bezobslužnou instalací.
2.3.3.4
Unattended
Velmi podobný projekt jako ANI. Stejně i tady se nejdříve umístí soubory operačního systému na server dosažitelný v síti, stanice nabootuje a spustí se instalace. Nabootovat lze z diskety, CD-ROMu a navíc pomocí PXE přímo ze sítě. Po skončení instalace operačního systému a připojení stanice do domény, se ještě nainstaluje balík softwaru a instalace je ukončena.
2.3.3.5
Závěr analýzy
Metoda Disk Imaging je vhodná pro velké organizace, kde jsou všechny stanice vybaveny stejným hardwarem i softwarem. Jakmile je více druhů pracovních stanic, více operačních systémů a požadavek na rozdílné softwarové vybavení jednotlivých stanic, stává se Disk Imaging prakticky nepoužitelnou metodou. Tomu se chceme do budoucna vyhnout a proto nástroje založené na Disk Imagingu nepoužijeme. Ze zbývajících dvou nástrojů jsem vybral Unattended, protože ANI nemá podporu spuštění automatické a bezobslužné instalace nabootováním ze sítě.
8
Kapitola 3 Unattended Unattended je systém pro plně automatizovanou instalaci systémů MS Windows 2000, MS Windows XP a MS Windows Server 2003. Podstatné rysy: • • • • • •
3.1
automatizovaná instalace operačního systému, hotfixů a uživatelských aplikací úplná dokumentace a zdrojové kódy podpora zavedení instalace z diskety, CD-ROM a nebo sítě opravdová vzdálená instalace – nejedná se o disk imaging pokud nemáte Windows server můžete využít Unixový server a naopak jedná se o open source, takže je zdarma
Historie
Projekt Unattended vznikl v roce 2002 s cílem umožnit vzdálené instalace pracovních stanic založených na operačním systému MS Windows, aniž by bylo potřeba využít k tomu Windows server. Krátce z vývoje: • • • • • • • • •
první zveřejněná verze se objevila 23.9.2002 a byla určena pouze pro testování hned další den se objevila verze označená 0.9, která přichází s obrazy (image) bootovacích médií v binárním kódu, takže není potřeba Unixový server 26.10.2002 je vypuštěna verze s označením 1.0, která přidává podporu pro operační systém Windows XP a je první verzí určenou k plnému nasazení verze 1.1.0 vylepšuje podporu Windows XP a kontroly errorů (30.9.2002) verze 2.0 přináší kompletně přepracovaný master skript (Perl), který nyní umožňuje větší možnosti nastavování (22.10.2002) v dalších 2.x verzích jsou především opravovány různé chyby a vylepšována podpora pro Windows XP a Office XP verze 3.0 už nevyžaduje anonymní přístup k instalačnímu bodu, což je krok vpřed v zabezpečení a mělo by se jednat o dosud nejstabilnější verzi (14.9.2003) verze 4.0 přichází s přepracovanou bootovací disketou, která je nyní založena na FreeDOSu a je také druhá varianta založena na Linuxu s jádrem 2.6.3 (8.3.2004) poslední verze je 4.6 uvolněná 2.1.2005
9
3.2
Příprava prostředí pro vzdálenou instalaci
Unattended je navržen tak, aby běžel především nebo výlučně po síti. Budeme tedy potřebovat DHCP server, WINS server a výchozí bránu (gateway). Dále Windows file server (nebo Unixový server, kde běží Samba). Při bootování přímo ze sítě budeme navíc potřebovat TFTP server.
3.2.1
Vytvoření distribučního bodu operačního systému
První fáze přípravy instalace je vytvoření distribučního bodu operačního systému. Tím může být principielně CD-ROM nebo harddisk přístupný po síti. My vytvoříme prostor na harddisku sdíleném v síti.
3.2.1.1
Vytvoření sdíleného prostoru
Ze serveru http://unattended.sourceforge.net/ si stáhneme poslední verzi Unattended distribuce (v současné chvíli se jedná o verzi 4.6). Na serveru se nachází 3 soubory: • • •
unattended-4.6.zip – základní balík unattended-4.6-dosboot.zip – bootovací médium s prostředím DOSu unattended-4.6-linuxboot.zip – bootovací médium s prostředím Linuxu
Můžeme stáhnout buď všechny tři soubory nebo jen základní balík a jeden balík s bootovacím médiem, který nám vyhovuje víc. Já jsem si vybral balík s prostředím Linuxu. Stažené soubory rozbalíme do adresáře \\ntinstall\ na Windows file serveru. Složce \\ntinstall\install\ přidělíme práva pouze ke čtení, povolíme přístup uživatelům typu guest. Složku \\ntinstall\install\ pracovně nazveme Z:, protože při instalaci bude takto namapována a v dalším textu se s tímto označením bude pracovat lépe. (Pokud připravujete vzdálenou instalaci Unattended v Unixovém prostředí, tak při rozbalování použijte přepínač -L, jinak se část souborů rozbalí do adresáře bin, zatímco ostatní do BIN a to způsobí řadu problémů až se budeme odkazovat na tyto soubory z DOSu. Pokud používáte Windows, tak se není čeho obávat, protože Windows jsou stejně jako DOS nejsou citlivé na velikost písmen v názvech souborů a adresářů.)
Celá instalační procedura je závislá na následujících souborech a adresářích obsažených ve složce Z:\ •
djgpp – obsahuje kolekci Unixových nástrojů pro DOS; ty jsou potřeba pro fungování master skriptu, který je napsaný v Perlu a DOS sám o sobě nemá prostředky pro jeho spuštění; tyto
10
•
nástroje nejsou přímo zakomponovány v žádném z balíků Unattended a stáhneme je samostatně – viz. níže dosbin – obsahuje několik DOSových utilit (jako např. fdisk) z projektu FreeDOS; dále obsahuje také soubor install.pl – master skript
•
lib – obsahuje pomocné soubory master skriptu, což zahrnuje soubor unattend.txt, který obsahuje odpovědi na otázky kladené instalátorem Windows; dále obsahuje pomocné moduly Unattend::FoldHash, Unattend::HotKey, Unattend::Promise, Unattend::IniFile a Unattend::WinMedia
•
site – obsahuje specifické soubory; např. zde může být umístěn soubor unattend.txt s nastavením pro více operačních systému, který bude použit místo souboru unattend.txt v adresáři \lib, protože master skript vyhledává unattend.txt nejdřív v adresáři \site a pokud uspěje, tak teprve následně hledá v \lib
•
os – obsahuje instalační soubory operačního systému, které tam překopírujeme z instalačního média – viz. níže
3.2.1.2
Integrace DJGPP
DJGPP je port pro Unixové prostředí v DOSu. Pro správnou funkčnost stáhneme z webu http://www.delorie.com/djgpp/ následující komponenty: • • • •
v2/djdev203.zip – základní balíček v2misc/csdpmi5b.zip – DPMI server v2gnu/perl561b.zip – port pro Perl v2apps/pico396b.zip – textový editor Pico
Stažené soubory rozbalíme do Z:\djgpp\. (Pokud připravujete vzdálenou instalaci Unattended v Unixovém prostředí, tak při rozbalování použijte přepínač -L, jinak se část souborů rozbalí do adresáře bin, zatímco ostatní do BIN a to způsobí řadu problémů až se budeme odkazovat na tyto soubory z DOSu. Pokud používáte Windows, tak se není čeho obávat, protože Windows jsou stejně jako DOS nejsou citlivé na velikost písmen v názvech souborů a adresářů.)
3.2.1.3
Přenesení instalačních souborů
V Z:\os\ vytvoříme podadresář pojmenovaný podle operačního systému, který do něj přeneseme. Já jsem vytvořil podadresáře hned dva: win2ksp4 a winxpsp2. Podadresáře mohou být pojmenovány obecně jakkoliv, protože master skript install.pl rozezná o jaký operační systém se jedná analýzou obsahu adresáře (konkrétně se o to stará pomocný modul Unattend::WinMedia), ale je
11
vhodné aby název adresáře měl maximálně 8 písmen, jinak bude tento název pod DOSem vypadat poněkud podivně (např. adresář \Program Files vypadá pod DOSem takto \Progra~1). Jakmile máme vytvořeny patřičné adresáře, tak do nich nakopírujeme složky \i386 z instalačních CD-ROM. V mém případě tedy ve výsledku dostávám dvě přístupové cesty Z:\os\win2ksp4\i386 a Z:\os\winxpsp2\i386 přičemž v první jsou nakopírovány soubory z adresáře \i386 na instalačním médiu MS Windows 2000 a v druhé soubory z adresáře \i386 na instalačním médiu MS Windows XP.
3.2.1.4
Integrace service packů
Tento krok je volitelný. Je ale vhodné integrovat service packy před vzdálenou instalací, protože jinak bude nutné instalovat je následně a to bude prodlužovat instalaci pracovní stanice a výsledná instalace bude taky zabírat víc místa. Pokud tedy není instalační CD-ROM operačního systému již se service packy, tak je tam integrujeme. (Pozor: Tento postup nelze použít u některých OEM verzí Windows XP. Integrace proběhne zdánlivě úspěšně, ale po první restartu se instalace přeruší a instalátor ohlásí "The file vga.sys is corrupted". Pro OEM instalace je nutné nainstalovat service packy až po dokončení instalace operačního systému.)
Procedura integrace service packů je stejná pro Windows 2000 i Windows XP. Jako příklad ukáži integraci Service packu 2 do Windows XP: 1) Instalační soubory mám tedy nakopírované v Z:\os\winxpsp2\i386\. 2) Ze serveru http://www.microsoft.com/ stáhnu „Windows XP Service Pack 2 Network Installation Package for IT Professionals and Developers“. Je nanejvýš vhodné, aby byl service pack ve stejném jazyce, jako je operační systém. Nechť se stažený soubor jmenuje např. WindowsXP-KB835935-SP2-ENU.exe (anglický service pack). 3) Spustím příkaz WindowsXP-KB835935-SP2-ENU.exe /u /x:Z:\xpsp2, čímž dojde k extrakci obsahu staženého service packu do adresáře Z:\xpsp2. 4) Dále spustím Z:\xpsp2\i386\update\update.exe /s:Z:\os\winxpsp2. Tímto příkazem se soubory service packu integrují do instalace systému a získám plnohodnotnou instalaci se Service Packem 2. 5) Kroky 3) a 4) se dají provést najednou příkazem WindowsXP-KB835935-SP2-ENU.exe -s:Z:\os\winxpsp2.
3.2.1.5
Integrace hotfixů
Instalace hotfixů není zdaleka tak důležitá jako instalace service packů a bohužel je taky poněkud komplikovanější. Pokud lze tedy síť, ve které se chystáme využívat vzdálenou instalaci, považovat za 12
relativně bezpečnou a není známa opravdu kritická chyba v zabezpečení Windows, stačí hotfixy nainstalovat až po instalaci operačního systému. Tvůrci Unattended doporučují stejný postup. Pokud však přesto dojdeme k rozhodnutí, že chceme nainstalovat systém „načisto“ bez jakýchkoliv dalších oprav po instalaci je postup následující: 1) Instalační soubory s integrovaným service packem mám nakopírované v Z:\os\winxpsp2\i386\. 2) Mám stažený hotfix WindowsXP-Q######-x86-enu.exe, který chci integrovat 3) Otevřu si soubor dosnet.inf v Z:\os\winxpsp2\i386\, doplním do něj následující: [OptionalSrcDirs] svcpack a uložím. 4) Vytvořím podadresář Z:\os\winxpsp2\i386\svcpack. Do něj nakopíruji WindowsXP-Q######-x86-enu.exe a přejmenuji ho na Q######.exe (je potřeba, aby byl název hotfixu tvaru 8.3, který je výchozí pro DOS). 5) Hotfix rozbalím příkazem Z:\os\winxpsp2\i386\svcpack\Q######.exe /X:Z:\Temp do adresáře Z:\Temp. 6) Rozbalené soubory katalogů (.cat) a binární soubory (.exe, .dll, .sys) nakopíruji z Z:\Temp následovně: • •
•
Q######.cat do Z:\os\winxpsp2\i386\svcpack\. Pokud integruji více hotfixů naráz, tak nakopíruji všechny, pokud některý z binárních souborů existuje ve více balíčcích (za předpokladu, že instaluji více hotfixů naráz) ponechám pouze ten z hotfixu s nejvyšším číslem (###### symbolizuje číslo; vyšší číslo znamená vyšší verzi) smaži všechny binární soubory z Z:\os\winxpsp2\i386, které mají být nahrazeny novějšími (např. soubor Z:\Temp\tcpip.sys nahrazuje Z:\os\winxpsp2\i386\tcpip.sy_),
•
nakopíruji všechny binární soubory a podadresáře z hotfixu do Z:\os\winxpsp2\i386 (například pokud je v hotfix adresář i386\rtmqfe\, tak všechny soubory, které obsahuje nakopíruji do Z:\os\winxpsp2\i386\rtmqfe\; soubory Update.exe, Update.inf, SPmsg.dll, SPcustom.dll, SPuninst.exe, Update.ver nebo znakové soubory není potřeba kopírovat). 7) Pro každý soubor, který jsem v kroku 6) nakopíroval do Z:\os\winxpsp2\i386 (kromě souborů typu KB######.cat), se musím podívat do Z:\os\winxpsp2\i386\dosnet.inf, jestli se tam v sekci [Files] nachází. Pokud se tam soubor nevyskytuje, tak ho musím do sekce přidat. (Nakopíroval jsem např. soubor win32k.sys, ale ten se tam nenachází, tak do sekce [Files] přidám záznam d1,win32k.sys.) To zajistí, že nově přidaný soubor (v našem případě win32k.sys) bude úspěšně nainstalován. 8) Smaži soubor Z:\os\winxpsp2\i386\Svcpack.in_.
13
9) Vytvořím soubor Z:\os\winxpsp2\i386\Svcpack.inf s následujícím obsahem: [Version] Signature="$Windows NT$"MajorVersion=5 MinorVersion=1 BuildNumber=2600 [SetupData] CatalogSubDir="\i386\svcpack" [ProductCatalogsToInstall] Q######.cat [SetupHotfixesToRun] Q######.exe /Q /N /Z a uložím.
3.2.1.6
Integrace driverů
Opět se jedná o volitelný krok, protože většina nových operačních systémů má v celku bohatou kolekci driverů, které podporují většinu současného hardwaru. Nicméně může se stát, že některý kousek hardwaru přece jen podporován nebude, takže je dobré vědět jak kýžené drivery přidat do instalace. Mohli bychom zařízení přidat až do nainstalovaného systému, ale pokud by se náhodou jednalo o síťovou kartu, tak bych to mohlo být pozdě. Zde je návod, jak drivery integrovat do instalačních souborů: 1) V Z:\os\winxpsp2\i386 vytvořím adresář $oem$ a v něm podadresář $1. 2) Stáhnu nejnovější drivery z webu výrobce hardwaru pro Windows XP (případně jiný operační systém, který instaluji) a rozbalím je. 3) Pokud by se například jednalo o drivery k síťové kartě, tak v adresáři Z:\os\winxpsp2\i386\$oem$\$1 vytvořím podadresář net a rozbalené drivery tam nakopíruji. Instalátor Windows během instalace překopíruje veškerý obsah adresáře $1 na systémovou jednotku (typicky C:). Master skript install.pl automaticky prohledá všechny adresáře a ty které obsahují drivery nabídne, aby byly přidány do OemPnPDriversPath v souboru unattend.txt. Jediný požadavek kladený na soubory v $1 je, aby absolutní cesta od \os\... k nim (např. \os\winxpsp2\i386\$oem$\$1\net\net.inf) byla kratší než 64 znaků, jinak winnt.exe vygeneruje error při pokusu o jejich zkopírování.
3.2.2
Vytvoření bootovacího média
Postup jak spustit instalaci je velmi snadný:
14
• •
nabootovat do DOSu nebo Linuxu namountovat síťovou instalaci připravenou na Windows file serveru jako Z:
•
spustit master skript a tím instalaci
Nabootovat můžeme buď pomocí diskety, CD-ROM nebo přímo ze sítě. Adresář \bootdisk z Unattended distribuce obsahuje obrazy pro všechny 3 možnosti a nástroje, aby bylo možno obrazy upravit. Mezi cíli mám, aby bylo možno bootovat přímo ze sítě. Popíši tedy i zbylé dvě možnosti, ale využiji právě bootování ze sítě.
3.2.2.1
Bootování z diskety
Bootování z diskety je možné jenom při variantě nabootování do DOSu. Rozbalím soubory unattended-4.6.zip a unattended-4.6-dosboot.zip a v podadresáři \images je zkomprimovaný obraz 1.44MB bootovací diskety pro každou z podporovaných síťových karet. Podporované síťové karty jsou tyto: • • • • • • • • • • • • • • • • •
b44.imz b57.imz dc21x4.imz dp83815.imz e100b.imz e1000.imz elpc575.imz el556.imz el90x.imz el94x.imz fetnd.imz ngrpci.imz pcntnd.imz rtsnd.imz rtgbnd.imz sis900.imz undis3c.imz
Broadcom BCM440x family Broadcom BCM57xx "Tigon3" family DEC/Intel 2104x/2114x "Tulip" family Natsemi 83815 "MacPHYTER" family (e.g., Netgear FA311/FA312) Intel Pro/100 family of PCI and CardBus adapters Intel Pro/1000 family of gigabit adapters 3com 3c575 family of CardBus adapters 3com 3c556 family of mini-PCI adapters 3com 3c59x/3c90x family of PCI and CardBus adapters 3com 3c94x/3c2000 family of gigabit adapters VIA VT86C100A/6102/6105 "Rhine" family (e.g., D-Link DFE-530TX) Netgear FA310 AMD PCNet family (also VMWare) Realtek RTL8139 family (e.g., D-Link DFE-530TX+) Realtek RTL8169/8110S Gigabit family SiS 900 family "Universal" NDIS UNDI driver (3com)
Z tohoto seznamu vybereme obraz se správným DOSovým driverem pro použitou síťovou kartu a obraz zapíšeme na disketu. Pod Linuxem spustíme příkaz zcat xxx.imz | dd of=/dev/fd0 (kde xxx.imz je námi vybraný obraz) a obraz se nakopíruje na disketu. Ve Windows budeme muset pro zápis obrazu použít pomocnou utilitu. Jedna možnost je rawwritewin, která je volně dostupná, 15
ale obraz musíme nejdřív rozbalit. Další možnost je WinImage, která je příjemnější na ovládání a umí pracovat přímo se zkomprimovanými obrazy. Bohužel se ale jedná o shareware. Jako DOSové prostředí při síťové instalaci slouží FreeDOS verze 1.
3.2.2.2
Bootování z CD-ROM
Z CD-ROM je možné nabootovat jak do DOSu, tak do Linuxu. Princip bootovacího média v případě bootování do DOSu je v podstatě stejný jako u diskety. Rozdíl je v tom, že na CD-ROM se vlezou obrazy pro všechny síťové karty, takže není potřeba rozhodovat se pro jeden konkrétní a určíme ho až po nabootování. Médium pro bootování do Linuxu využívá Linux s jádrem 2.6.10 a typické ovladače. Soubory bootdisk.iso i linuxboot.iso využívají systém souborů ISO-9660 a datový mód je Mode 1. Obraz lze vypálit v kterémkoliv vypalovacím programu (Nero Burning ROM, Alcohol 120%,...).
3.2.2.3
Bootování ze sítě
Bootování ze sítě je nejpohodlnější, ale tato varianta je nejnáročnější na síťové prostředky. Je potřeba TFTP server, správně nakonfigurovaný DHCP server a pracovní stanice vybavené síťovými kartami podporujícími bootování ze sítě pomocí PXE specifikace (vyvinutou společností Intel). Princip bootování ze sítě funguje přibližně takto: pracovní stanice vyšle požadavek Dynamic Host Configuration Protocol (DHCP) hlavnímu uzlu. Hlavní uzel (server) mu předá konfiguraci lokální sítě, kterou má tato stanice použít. Odpověď obsahuje i adresu serveru a jméno souboru na něm. Tento soubor si podřízený počítač zavede pomocí TFTP-protokolu (Trivial File Transfer Protokol) do paměti a spustí. Takto stažený soubor musí odpovídat specifikaci prostředí Preboot Execution Environment (PXE). Specifikace PXE definuje paměťový model programu, model přístupu k periferiím a další parametry okolí, kterým je daný program obklopen. V našem případě pomocí TFTP zavedeme do paměti soubor pxelinux.0. Jde o síťovou obdobu běžného zavaděče používaného při zavádění operačního systému do počítače z disku. PXELinux po zavedení do paměti znovu požádá hlavní počítač o konfiguraci sítě pomocí DHCP. Tím získá znovu adresu TFTP-serveru, ze kterého se pokusí získat konfigurační soubor. Tento soubor obsahuje instrukce pro zavedení konkrétního jádra operačního systému (buď Linux nebo FreeDOS, podle toho pro co se rozhodneme) pomocí TFTP. PXELinux toto jádro zavede a spustí. Budeme tedy potřebovat TFTP server. K tomu může posloužit třeba program Tftpd32. Jedná se o jednoduchý freeware TFTP server pro Windows, který by měl podle ohlasů spolehlivě fungovat a být pro naše účely plně dostačující. Zároveň je možné vytvořit pomocí tohoto programu DHCP server. Jako DHCP server využijeme stávající DHCP server, který běží na CPS. Pouze upravíme konfiguraci tak, aby jako next-server měl IP adresu TFTP serveru a jako filename soubor pxelinux.0.
16
Poslední krok je nastavit pracovní stanice na bootování ze sítě. V BIOSu je potřeba aktivovat v sekci Integrated peripherals OnChip LAN Boot ROM (případně podobnou položku) a nastavit síťovou kartu jako výchozí bootovací zařízení.
3.2.2.4
Úprava instalačního média
Tento krok je volitelný v případě změny některých vlastností bootovacího média, přidání driverů pro nepodporovanou síťovou kartu, apod. Abychom bootovací disk modifikovali správně je vhodné to provést v Unixovém prostředí, protože tam na to máme přijatelné nástroje: GNU Make, Mtools suite, mkisofs a další. Zadáním příkazu make images v adresáři bootdisk vygeneruji obraz pro disketu. Zadáním příkazu make iso vytvořím ISO image. Zadáním make tftpboot vytvořím tftpboot adresář. A zadáním make vygeneruji všechna tři výše popsaná bootovací média naráz. V souboru drivers.txt jsou nadefinovány všechny podporované síťové karty. Pro přidání podpory nové síťové karty stačí nahrát nový driver do adresáře drivers, upravit soubor drivers.txt a spustit make. Pro úpravu souborů autoexec.bat, config.sys,... stačí upravit dané soubory v adresáři template a spustit make.
3.2.3
Příprava dalšího uživatelského softwaru
Navazující instalace uživatelského softwaru pomocí Unattended jsou vymyšleny s důrazem na: •
•
•
Možnost oddělení od předchozí instalace operačního systému. Mohou nastat případy, kdy se instaluje speciální stanice nebo jiný počítač pomocí vzdálené instalace a žádný z předpřipravených balíků softwaru se pro něj nehodí, zvolí se tedy ruční výběr. Možnost vytváření a kombinování jednotlivých sad softwaru, pro odlišné skupiny počítačů. Pro jednotlivé skupiny počítačů lze vytvořit balíky softwaru, které se pak mohou lehce kombinovat. Např. v CPS jsou všechny stanice vybaveny softwarem Office XP, Open Office, Adobe Acrobat, Lingea Lexicon, F-secure Antivirus, Gimp, Mozilla, Putty,... Všechen tento software označím jako balík A. Dále počítače vybavené vypalovací mechanikou potřebují navíc oproti jiným počítačům Nero Burning ROM – balík B. A jako balík C označím Adobe Photoshop LE a ABBYY Fine Reader, který se instaluje na počítač s připojeným skenerem. Na všechny stanice tedy nainstaluji balík A a na některé další doinstaluji balík B nebo balík C. Takovýchto balíků si mohu předdefinovat, libovolné množství a libovolně je kombinovat. Jednoduchost. Systém by měl být co nejjednodušší, aby mu bylo co nejlépe rozumět. Navíc systémoví administrátoři jsou věčně zaneprázdnění lidé, takže se předpokládá, že nebudou mít moc času, aby se učili něco o komplikovaných systémech. 17
3.2.3.1
Proces instalace uživatelského softwaru
Jednotlivé části procesu: • • •
namapování sdíleného prostoru s instalacemi uživatelského softwaru jako disk Z: nainstalování Perlu nainstalování všeho ostatního
Perl je nutný, protože hlavní skript todo.pl je napsaný právě v Perlu. Tento proces je volán okamžitě sekcí GuiRunOnce v unattend.txt po skončení vzdálené instalace operačního systému. Proces předpokládá, že pracovní stanice je nakonfigurována na automatické přihlášení lokálního administrátora po každém restartu. Toto se dá případně změnit v autolog.pl skriptu.
3.2.3.2
Struktura sdíleného prostoru install
Sdílený adresář \install je ten, který jsme vytvořili na začátku příprav instalace a nasdíleli ho jako Z:. Instalační soubory aplikací jsou uloženy v těchto podadresářích install: • • • •
\bin – obsahuje binární utility a skripty; modifikace obsahu by neměla být nutná \packages – obsahuje instalace jednotlivých aplikací \scripts – obsahu instalační skripty pro jednotlivé aplikace nebo balíky aplikací; skripty je vhodné editovat podle potřeba \site – obsahuje konfigurační data jako licenční klíče
3.2.3.3
Řídící skript todo.pl
Jeden hlavní skript, todo.pl, kontroluje celý instalační proces. Všechny ostatní skripty jsou hlavním skriptem volány. Soubor todo.pl si udržuje seznam „úkolů, které je potřeba vykonat“ (tedy seznam všech aplikací, které je potřeba na cílovou stanici nainstalovat) v textovém souboru C:\netinst\todo.txt. Po spuštění todo.pl --go, skript odstraní první řádek (příkaz) z todo.txt a spustí ho, pak odstraní druhý a spustí ho a tak pokračuje až je seznam prázdný. Tato konstrukce má mnoho výhod: •
poskytuje konzistentní prostředí (např. PATH) pro běh ostatních skriptů 18
• • •
zachytí každý error vrácený volaným skriptem, pozastaví spouštění následujících skriptů, takže je možné odladit vzniklý problém poskytuje kontrolované restartování přirozenou cestou splňuje požadavek na možnosti kombinování jednotlivých sad softwarových balíků; programátoři mohou todo.txt považovat za jednoduchý zásobník; a protože je todo.txt uložen na harddisku, tak samozřejmě bezpečně přečká restart
Kromě jednoduchých příkazů todo.txt může obsahovat také příkazy pro todo.pl. Příkazy vždy začínají tečkou a patří mezi ně např.: •
•
•
•
3.3
.ignore-err. Skript todo.pl je zaměřen na přísnou kontrolu vzniklých errorů, takže jakmile nějaký příkaz vrátí nenulovou hodnotu, dojde k zastavení a vytištění problému, který zastavení způsobil. To se nám ale nehodí, protože některé instalační programy, i když proběhnou úspěšně, vrací nenulovou hodnotu. Mějme např. instalátor foo.exe, který vždy vrací hodnotu 37. Příkazem todo.pl „.ignore-err 37 foo.exe" přidám řádek .ignore-err 37 foo.exe do seznamu úkolů todo.txt. Po spuštění instalace bude očekávána návratová hodnota a pokud to bude hodnota 37, tak ji todo.pl bude ignorovat a bude pokračovat dál. .reboot. Příkaz, který hlavnímu skriptu přikazuje, aby restartoval počítač. To todo.pl provede po té, co do registrů uloží nastavení, kterým se po restartu a nalogování opět spustí a bude pokračovat od místa přerušení. .reboot-on. Tato direktiva je určena především různým instalátorům z dílny Microsoftu, které končí s požadavkem na restartování po ukončení instalace a jako návratový kód vrací 194. Pro takovéto instalátory vložíme do seznamu úkolů přibližně takový řádek pomocí příkazu todo.pl „.reboot-on 194 q999999.exe /q /r:n". .sleep. Zřídka používaný příkaz. Využijeme ho například, když nějaký instalátor spustí proces-potomka a ukončí se. To se nám ovšem nehodí a nejjednodušší řešení je o chvíli odložit ukončení procesu. Odložíme jej třeba o 30 vteřin příkazem todo.pl „.sleep 30".
Vytvoření a úpravy souboru unattend.txt
Smyslem bootovacího média je získat přístup do sítě a pak přenechat kontrolu „mocnějším“ nástrojům, které jsou tam dostupné. Bootovací médium nahraje ovladače síťové karty, namountuje sdílený instalační adresář jako jednotku Z: a konečně spustí skript (Perl) Z:\dosbin\install.pl. Skript nám položí množství otázek z nichž vygeneruje unattend.txt a spustí Windows Setup (instalátor operačního systému Windows).
19
3.3.1
Vytvoření souboru unattend.txt
3.3.1.1
Namountování síťové jednotky Z:
Po nahrání síťového zásobníku, se nás bootovací program zeptá, jestli chceme přepsat výchozí nastavení uživatelského jména, hesla a sdíleného prostoru install. Výchozí hodnoty jsou guest, guest a \\ntinstall\install. V dalším kroku bootovací program použije uživatelské jméno a heslo k síťovému přihlášení a inicializuje zásobník pro sdílení souborů. Pokud je tento krok úspěšný namapuje sdílený instalační adresář \\ntinstall\install jako jednotku Z:. Nakonec bootovací program spustí instalační skript Z:\dosbin\install.pl, který už je značně složitější.
3.3.1.2
Rozdělení harddisku
Instalační skript spustí rozdělení harddisku. Jedná se o vcelku komplikovaný krok a to hned ze dvou důvodů. První důvod je, že jakákoliv změna v partition tabulce harddisku vyžaduje restartování počítače, aby tato změna vešla v platnost. Druhý důvod je, že DOS neumí přistupovat k jednotkám se souborovým systémem NTFS, ale právě NTFS je souborový systém, který chceme používat. Skript před nám nabídne jednoduché menu s několika možnostmi rozdělení harddisku. Pokud nám žádná možnost nevyhovuje, spustí se fdisk, s jehož pomocí můžeme vytvořit vlastní rozdělení. Přednastavené možnosti nejdříve rozdělí disk na více jednotek se souborovými systémy NTFS. První partition pak zruší a nahradí ji 2GB partitionou s FAT souborovým systémem. Tuto jednotku pak aktivuje, označí jako C: a bude to výchozí jednotka pro instalaci systému. Během instalace systému, překonvertuje Windows Setup souborový systém FAT na NTFS a rozšíří velikost jednotky na maximum, aniž by tím poškodil zbylé jednotky na disku. Po restartu instalační skript znovu nabídne možnosti rozdělení harddisku. Buď vybereme možnost Do nothing (continue) nebo vybereme stejnou možnost jako posledně. Skript si ověří, že toto rozdělení už je připraveno a bude beze změny pokračovat dál.
3.3.1.3
Formátování
Instalační skript se zeptá jestli má naformátovat jednotku C:. Odpověď je yes.
3.3.1.4
Výběr operačního systému
Skript prohledá adresář Z:\os a na základě jeho obsahu nám nabídne seznam operačních systémů, které můžeme nainstalovat.
20
3.3.1.5
Product key
Instalační skript si vyžádá Product key k instalovanému operačnímu systému. Ten je potřeba zadat přesně tak, jak je licenční smlouvě včetně pomlček (např. 12345-6789A-BCDEF-GHIJK-LMNOP),
3.3.1.6
Název pracovní stanice
Skript se nás zeptá na jméno pracovní stanice. Pokud zadáme * (hvězdičku), tak Windows Setup vygeneruje náhodné jméno.
3.3.1.7
Organizace a uživatelské jméno
Zde zodpovíme dotaz, které organizaci pracovní stanice patří a jaké je uživatelské jméno výchozího uživatele.
3.3.1.8
Místní administrátorské heslo
Zde zadáme lokální administrátorské heslo pro tuto stanici. Heslo bude při zadávání vidět, takže je nanejvýš vhodné ho v co nejkratším čase po dokončení instalace změnit.
3.3.1.9
Přihlášení se do domény
V tomto bodě se skript ptá, do které domény se bude stanice přihlašovat. Pokud se nemá přihlašovat do žádné, tak jen zmáčkněte Enter. Pokud zadáte doménu, budete dotázáni na uživatelské jméno (tvaru doména\uživatelské jméno nebo jenom uživatelské jméno) a heslo. Pokud zadáte doménu, budete mít možnost zadat seznam účtů, které budou přidány do místní administrátorské skupiny. Pokud je nechcete zadávat, stačí zmáčknout Enter.
3.3.1.10
Přihlášení do pracovní skupiny
Pokud se stanice nebude přihlašovat do domény, bude jí nabídnuto přihlašování do pracovní skupiny.
3.3.1.11
Výběr aplikačních balíků
21
Poslední dotaz směřuje na aplikační balíky, které budeme chtít nainstalovat na stanici po ukončení instalace operačního systému. Skripty pro aplikační balíky se nachází v adresáři Z:\scripts. Je o nich pojednáváno výše.
3.3.1.12
Závěrečné úpravy
Na závěr instalační master skript vygeneruje soubory unattend.txt, postinst.bat a doit.bat a nabídne možnost je ručně modifikovat než bude spuštěn Windows Setup. Po dokončení změn, vyberte možnost Continue. A to je vše. Instalace operačního systému by měla úspěšně probíhat až do zdárného konce. Pokud nechcete absolvovat toto odpovídání při každé instalaci (což se předpokládá), stačí nakopírovat odpovědní soubor unattend.txt do složky Z:\site. Případně můžete unattend.txt upravit. Viz. další kapitola.
3.3.2
Úpravy souboru unattend.txt
3.3.2.1
Uvedení
Pokud chceme provést jednoduché úpravy v konfiguraci, tak stačí vytvořit a zpřístupnit Z:\site\unattend.txt. Hodnoty, které budou zadány v tomto souboru, budou použity namísto výchozích hodnot a způsobí, že instalační skript bude korespondující dotazy přeskakovat. Pokud by některá odpověď byla špatně napsaná, tak instalační skript bude vyžadovat, abychom na ni odpověděli ručně.
3.3.2.2
Syntaxe unattend.txt
Syntaxe souboru s odpověďmi je shodná se soubory typu .ini nebo .inf a vypadá přibližně takto: [SECTION 1] ; COMMENT KEY1=VALUE1 KEY2 KEY3="funny;quoted=value" [SECTION 2] . . .
22
To znamená, že se skládá ze sekcí, z nichž každá je uvedena jménem v hranatých závorkách. Každá sekce má žádný až mnoho záznamů (známé též jako nastavení). Každý záznam přiděluje hodnotu určitému klíči nebo je tvořena pouze klíčem. Každý řádek, který začíná středníkem nebo mezerou následovanou středníkem je komentář. Pokud hodnota obsahuje jedinečné znaky, nebo se jedná o prázdný string, musí být uvedeny v uvozovkách. Které znaky jsou jedinečné není dokumentováno. Uvozovky jsou povoleny, i když nejsou vyžadovány, takže v případě pochybností je vhodné je použít.
3.3.2.3
Dokumentace společnosti Microsoft
Nejpodrobnější dokumentaci k souborům s odpověďmi pro vzdálenou automatickou instalaci vydal sám Microsoft. Bohužel ke každému operačních systému (Windows 2000, Windows XP, Windows Server 2003) vydal dokumentaci vlastní a to i přesto, že soubory s odpověďmi pro jednotlivé systémy jsou si velmi podobné. Dokumentace k Windows 2000 je v souboru unattend2k.htm na přiloženém CD ve složce \microsoft\unattend2k\. Dokumentaci k Windows XP se mi bohužel sehnat nepodařilo, ale dost informací se dá získat ze souboru s nápovědou ref.chm. Jako další zdroj informací a pomocník při tvorbě souboru unattend.txt nám může posloužit program setupmgr.exe, který simuluje dotazy Windows Setupu a na konci vytvoří unattend.txt s našimi odpověďmi. Oba soubory jsou uloženy na přiloženém CD ve složce \microsoft\unattendXP\.
3.3.2.3
Nastavení použité Windows Setupem
V tomto odstavečku je pár příkladů pro představu, převzatých přímo ze souboru unattend.txt k bezobslužné instalaci systému Windows XP. Je v celku zřejmé, co jednotlivé položky znamenají, proto to nechám bez komentáře. [Unattended] UnattendMode=FullUnattended OemSkipEula=Yes OemPreinstall=No TargetPath=\WINDOWS FileSystem=LeaveAlone NtUpgrade=No OverwriteOemFilesOnUpgrade=No [GuiUnattended] AdminPassword="xxx" EncryptedAdminPassword=NO 23
AutoLogon=Yes AutoLogonCount=1 OEMSkipRegional=1 TimeZone=95 OemSkipWelcome=1 [UserData] ProductID=XXXXX-XXXXX-XXXXX-XXXXX-XXXXX FullName="%USERFULLNAME%" OrgName="%ORGNAME%" ComputerName=%MACHINENAME% [Display] BitsPerPel=24 Xresolution=1024 YResolution=768 Vrefresh=85 [RegionalSettings] LanguageGroup=2,1 [SetupMgr] DistFolder=C:\whistlerdist DistShare=whistlerdist [Identification] JoinDomain=%MACHINEDOMAIN% DoOldStyleDomainJoin=Yes
3.3.2.4
[_meta] sekce
Unattended přidává jisté možnosti nastavování, které Windows Setup nenabízí. Tyto možnosti jsou v tzv. [_meta] sekci. Ta je Windows Setupem ignorována a je využita k zodpovězení otázek kladených skriptem install.pl. Zde malý příklad: Partitioning a formátování Instalační skript začne partitioning a formátování disku. K automatické odpovědi na otázku „Podpora velkých disků", nastavíme hodnotu klíče fdisk_lba na 1 pro „ano" nebo 0 pro „ne". Aby byla jednotka automaticky zformátována, nastavíme klíč format_cmd.
24
Automatické nahrazení Master Boot Record (MBR) použijeme klíč replace_mbr. 1 pro „ano“ nebo 0 pro „ne“. [_meta] fdisk_lba=1 format_cmd="format /y /z:seriously /q /u /a /v: c:" replace_mbr=1 Post-install skripty, lokální administrátoři, ... Který softwarový balík nainstalovat po instalaci operačního systému zadáme hodnotu klíči toplevel. K nastavení které „volitelné" skripty spustit po instalaci zadáme hodnotu klíči middle. ... [_meta] top=base.bat middle="spybot.bat;sun-jre.bat" local_admins="" ntp_servers="ntp-0 ntp-1" edit_files=0
3.3.2.5
Konfigurace použitím skriptu config.pl
Pokud nám nestačí statické odpovědi ze souboru unattend.txt, můžeme vytvořit libovolné pravidla pro odpovídání pomocí skriptu Z:\site\config.pl. Jedná se o skript napsaný v Perlu, který čte master skript install.pl. Opět malý příklad: Čtení odpovědí z různých souborů s odpověďmi na základě instalace OS my $media_obj = Unattend::WinMedia->new ($u->{'_meta'}>{'OS_media'}); my $os_name = $media_obj->name (); if ($os_name =~ /Windows 2000/) { $u->read (dos_to_host ('z:\\site\\win2k-un.txt')); } elsif ($os_name =~ /Windows XP/) { $u->read (dos_to_host ('z:\\site\\winxp-un.txt')); } else { die "Unrecognized OS name: $os_name"; 25
} 1;
26
Kapitola 4 Závěr Seznámil jsem se a podrobně jsem prostudoval jednotlivé metody a nástroje automatické a bezobslužné instalace pracovních stanic. Po analýze několika variant jsem se rozhodl pro použití nástroje Unattended. Ten jsem v CPS ÚVT MU nainstaloval a demonstroval a v současné době je ve fázi testování. Pokud se osvědčí, tak nahradí stávající nástroje pro bezobslužnou instalaci pracovních stanic. Oblast automatické a bezobslužné instalace se vyvíjí z pohledu ostatních oblastí informačních technologií relativně pomalu a nové požadavky jsou směřovány především na co možná nejmenší potřebu zasahování lidského jedince do ovládání instalace. Idea je jasná – spustit bezobslužnou instalaci a po určitém časovém intervalu ověřit, zda už je proces instalace ukončen. Tato oblast nepůsobí na první pohled nijak zvlášť důležitě, ale pokud budou nástroje pro automatickou instalaci v budoucnu ještě spolehlivější než jsou dnes, případně programátoři operačních systémů sami vytvoří funkční a použitelné nástroje, ušetří tím hodně času správcům sítě, kteří ho následně budou moci využít pro řešení zásadnějších úkolů, jako je třeba zabezpečení sítě.
27
Literatura 1. Unattended, A Windows deployement system, Patrick J. LoPresti. Dokument dostupný na URL http://unattended.sourceforge.net/ (leden 2005). 2. Automated Network Installations, haran (design), alexander (funkce a obsah). Dokument je dostupný na URL http://ani.sourceforge.net/ (leden 2005). 3. Real Men Don't Click, Tobias Oetiker, ETH Zurich, 13. dubna 2004. Dokument dostupný na URL http://isg.ee.ethz.ch/tools/realmen/ (leden 2005). 4. Windows 2000 Unattended Installations and related utilities, Oli Restorick, 21. října 2002. Dokument dostupný na URL http://www.willowhayes.co.uk/windows2000/index.htm (leden 2005). 5. Microsoft Windows 2000 Datacenter Documentation - Remote Installation Services. Dokument dostupný na URL http://www.microsoft.com/windows2000/en/datacenter/help/default.asp?url=/windows2000/e n/datacenter/help/sag_RIS_Default_topnode.htm (leden 2005).
28
Příloha A unattend.txt ;SetupMgrTag [Data] AutoPartition=1 MsDosInitiated="0" UnattendedInstall="Yes" [Unattended] DriverSigningPolicy=Ignore UnattendMode=DefaultHide ExtendOemPartition=1 OemSkipEula=Yes OemPreinstall=Yes TargetPath=\WINDOWS FileSystem=ConvertNTFS NtUpgrade=No OverwriteOemFilesOnUpgrade=No [GuiUnattended] AdminPassword=5672781ce2cb5ab87584248b8d2c9f9e0f07bb9a9bffcd3014 54e58bfc704c7f EncryptedAdminPassword=Yes OEMSkipRegional=1 TimeZone=95 OemSkipWelcome=1 [UserData] ProductID=12345-6789A-BCDEF-GHIJK-LMNOP FullName="%USERFULLNAME%" OrgName="%ORGNAME%" ComputerName=%MACHINENAME% [Display] BitsPerPel=24 Xresolution=1024 YResolution=768 Vrefresh=85 [RegionalSettings] 29
LanguageGroup=2 SystemLocale=00000405 UserLocale=00000405 InputLocale=0405:00000405 [Identification] JoinDomain=%MACHINEDOMAIN% DoOldStyleDomainJoin=Yes [Networking] InstallDefaultComponents=Yes ProcessPageSections=Yes [RemoteInstall] Repartition=Yes
30
Příloha B config.pl use use use use
warnings; strict; Socket; Net::hostent;
# Lookup fdisk (partitioning) commands from database, if possible. $u->push_value ('_meta', 'fdisk_cmds', sub { my $os_media = $u->{'_meta'}->{'OS_media'}; defined $os_media or return undef; my $media_obj = Unattend::WinMedia->new ($os_media); defined $media_obj or return undef; my $os_name = $media_obj->name (); my $partitions; foreach my $lookup ($u->{'_meta'}->{'macaddr'}, $u->{'UserData'}->{'ComputerName'}, "$os_name", 'Default') { my $value = CONFIG->lookup_value($lookup, 'Partitions'); defined $value and return $value; } return undef; }); # Lookup computer name from database, if possible. $u->push_value ('UserData', 'ComputerName', sub { foreach my $lookup ($u->{'_meta'}->{'macaddr'}, 'Default') { my $value = CONFIG->lookup_value($lookup, 'ComputerName'); defined $value and return $value; } return undef; 31
}); # Lookup Domain from database, if possible. $u->push_value ('Identification', 'JoinDomain', sub { return lookup_property('JoinDomain'); }); # Lookup OS Directory from database, if possible. $u->push_value ('_meta', 'OS_media', sub { my $os_dir = $u->{'_meta'}->{'OS_dir'}; defined $os_dir or return undef; my $os_media = lookup_property('OS_media'); defined $os_media or return undef; $os_media =~ /^[a-z]:/i or $os_media = $os_dir . '\\' . $os_media; opendir OSMEDIA, dos_to_host ($os_media) or return undef; closedir OSMEDIA; return $os_media; }); # Lookup Assigning product key based on OS type $u->{'UserData'}->{'ProductKey'} = sub { my $media_obj = Unattend::WinMedia->new ($u->{'_meta'}>{'OS_media'}); my $os_name = $media_obj->name (); if ($os_name =~ /Windows XP/) { return 'MY-WINDOWS-XP-KEY'; } elsif ($os_name =~ /Windows Server 2003/) { return 'MY-SERVER-2003-KEY'; } return undef; }; $u->{'UserData'}->{'ProductID'} = sub { my $media_obj = Unattend::WinMedia->new ($u->{'_meta'}>{'OS_media'}); my $os_name = $media_obj->name (); if ($os_name =~ /Windows 2000/) { 32
return 'MY-WINDOWS-2000-KEY'; } elsif (defined $u->{'UserData'}->{'ProductKey'}) { # It is OK for us to return undef as long as there is a # ProductKey. return undef; } die "No ProductKey nor ProductID!"; }; # Lookup "Top" level scripts from database, if possible. $u->push_value ('_meta', 'top', sub { lookup_property('top_scripts'); }); # Lookup "Middle" level scripts from database, if possible. $u->push_value ('_meta', 'middle', sub { lookup_property('middle_scripts'); }); # Lookup "Bottom" level scripts from database, if possible. $u->push_value ('_meta', 'bottom', sub { lookup_property('bottom_scripts'); }); # Lookup and read specific Unattended.txt files my $media_obj = Unattend::WinMedia->new ($u->{'_meta'}>{'OS_media'}); my $os_name = $media_obj->name (); if ($os_name =~ /Windows 2000/) { $u->read (dos_to_host ('z:\\site\\unattend.txt')); } elsif ($os_name =~ /Windows XP/) { $u->read (dos_to_host ('z:\\site\\winxp-un.txt')); } else { die "Unrecognized OS name: $os_name"; } # Make this file evaluate to "true". 1;
33
Příloha C CD s přílohami, programy a zdrojovými kódy •
• • • •
• • • • •
\unattended\ – složka obsahuje 3 soubory (unattended-4.6.zip, unattended4.6-dosboot.zip, unattended-4.6-linuxboot.zip), které obsahují distribuci Unattended \scripts\unattend.txt – soubor s konfigurací pro automatickou instalaci (viz. Příloha A) \scripts\config.pl – soubor s konfigurací pro dynamickou instalaci (viz. Příloha B) \utils\compname.exe – program, který dokáže dynamicky generovat a nastavit jméno počítače; využívá k tomu SN základní desky, MAC adresu, IP adresu, datum, prvku náhody,... \utils\regvars.exe – program, který prochází soubory registrů (.reg) a nahrazuje všechny výskyty proměnných prostředí jejich expandovaným ekvivalentem (např. %programfiles% expanduje na c:\program files) \tftp\tftpd32.274.zip – program Tftpd32 obsahuje DHCP, TFTP, SNTP and Syslog server \djgpp\ – obsahuje soubory s Unixovými nástroji pro DOS \microsoft\unattend2k\unattend2k.htm – dokumentace k souboru s odpověďmi unattend.txt pro Windows 2000 \microsoft\unattendXP\ – dokumentace k souboru s odpověďmi unattend.txt pro Windows XP \bc_ptucek_2005.pdf – bakalářská práce ve formátu PDF
34