MosNis-Wikibook/AutoMosNis/ Installationsautomatisierung per Unattended
MosNis: Intro - Installation - Sonstiges - Automatisierung(AutoMosNis)->:Autoyast - Kickstart - m23 - BSD-Derivate - Jumpstart - Unattended - Schlusswort |
MosNis-Wikibook/AutoMosNis/ Installationsautomatisierung per Unattended
Achtung dieser Artikel ist noch in Arbeit und dient vorläufig nur als Vorlage. Dieser Beitrag zu Linux oder der Abschnitt ist in Bearbeitung. Weitere Informationen findest du hier. Der Ersteller arbeitet an dem Beitrag oder Abschnitt und entsorgt den Wartungsbaustein spätestens 3 Tage nach der letzten Bearbeitung. Änderungen außer Rechtschreibkorrekturen ohne Absprache mit dem Urspungsautor sind möglichst zu vermeiden, solange dieser Baustein noch innerhalb der genannten Frist aktiviert ist. |
Die Installation von Windows, hier entweder 2000 oder XP, teilt sich in drei Abschnitte, das Starten des zu installierenden Computers mittels BootCD oder Bootdisketten oder Neboot, die Beantwortung wesentlicher Fragen für die Windowsinstallation sowie eventuell die Auswahl zusätzlicher Software und zuletzt die automatisierte Installation gewünschter Software und die Einrichtung des Systems.
Das Ganze basiert auf den Perlskripten von [unattended.sf.net]. Dort findet sich auch eine ausführliche, leider nur englischsprachige, Hilfe mit Beispielen.
Da bei mir nur ältere Rechner zum Einsatz kamen, die größtenteils nicht per PXE booten können, habe ich mit der LinuxbootCD von unattended gearbeitet. Die hat gegenüber den DOS-Disketten bzw. der DOS-CD den Vorteil, daß die Hardwareunterstützung für Netzwerkchips besser und einfacher integriert ist.
Inhaltsverzeichnis
Vorarbeiten
Wir benötigen einen lauffähigen DHCP-Server wie für den Rest von MosNis auch. Dazu kommt ein DNS-Server, der den Namen 'ntinstall' immer auf den Installationsserver auflöst. Ich habe das mit dem kleinen Server 'dnsmasq' mittels der Option
address=/ntinstall/AAA.BBB.CCC.DDD
erledigt. Nun muß noch der DHCP-Server den DNS-Server bekanntmachen:
option domain-name-servers AAA.BBB.CCC.DDD;
Sollte man nur einen Windowsinstallationsserver aufsetzen wollen, kann man dnsmasq auch gleich als DHCP-Server betreiben. Unter openSuSE 10.2 funktioniert das bestens, unter Fedora Core 6 hatte ich Probleme mit den Besonderheiten von dnsmasq, die zu lösen zu lange gedauert hätte. Gehen müßte es aber eigentlich. Sodann erstellen wir eine Freigabe im Sambaserver mit Namen 'install':
[install] # Beschreibung in der Netzwerkumgebung comment = Unattended # verhindert schreibende Zugriffe auf die Freigabe writable = no # erlaubt mehrere gleichzeitige Zugriffe auf die Dateien locking = no # absoluter Pfad zum freigegebenen Verzeichnis path = /samba/unattended/install # erlaubt Gastzugriffe auf die Freigabe guest ok = yes
Zuletzt müssen wir unseren Sambaserver noch zum WINS-Server machen, da es einen Moment in der Windowsinstallation gibt, zu dem die Namensauflösung per NetBIOS stattfindet und nicht per DNS. Dazu tragen wir in die smb.conf folgende Zeile ein:
wins support = yes
In die dhcpd.conf:
option netbios-name-servers AAA.BBB.CCC.DDD;
In die /etc/hosts:
AAA.BBB.CCC.DDD ntinstall
Dabei ist es unerheblich, ob die IP in der /etc/hosts schon vergeben ist, eine zweite Definition hat sich hier nicht als störend erwiesen. Nun besorgen wir uns die Pakete von unattended und entpacken die entsprechend der dortigen Anleitung. Unter /PFAD/install/scripts finden wir dann viele Batchdateien, von denen wir erst einmal alle löschen, die wir nicht benötigen. Weitere Batchfiles sind auf den unattended-Seiten verlinkt, findet man die benötigten dort nicht, muß man sie selber bauen. Dazu später mehr. Unter /PFAD/install/os legen wir nun zwei Verzeichnisse beliebigen Namens an, am schönsten, da kurz und prägnant, '200' und 'XP'. Dort hinein kopieren wir jeweils das 'i386' Verzeichnis von den Windowsscheiben. Jetzt sollten wir erst einmal alles haben, was wir benötigen.
Definitionen für unattended
Jetzt müssen wir definieren, wie die Windowsinstallation stattfinden soll. Dazu gibt es die Datei /PFAD/install/lib/unattend.txt. In dieser können beinahe beliebig viele Parameter vordefiniert werden. Als Anhaltspunkt die von mir verwandte:
; General user information [UserData] ; Definiert den Namen des Anwenders FullName="admin" ; Definiert dessen Organisation OrgName="XYZ" ; Definiert den Namen des zu installierenden Rechner, hier auskommentiert, damit bei der Installation eine Abfrage danach kommt ; ComputerName=lurinstall ; Lizenznummer von Windows XP ProductKey=12345-67890-12345-67890-12345 [GuiUnattended] ; See <http://unattended.sourceforge.net/timezones.html> ; Definiert die Zeitzone des zu installiernden Rechners TimeZone=110 ; überspringt die Regionenabfrage OEMSkipRegional=1 ; übersprint den Willkommensbildschirm OemSkipWelcome=1 ; Definiert das Administratorenpasswort AdminPassword=XYZ [Identification] ; Beitritt zu folgender Arbeitsgruppe JoinWorkgroup=XYZ [Shell] ; Use classic start menu DefaultStartPanelOff=Yes ; Use classic visual style DefaultThemesOff=Yes [Unattended] ; ignoriert die Nichtsignierung von Treibern DriverSigningPolicy=Ignore UnattendMode=DefaultHide ; konvertiert das Dateisystem zu NTFS FileSystem=ConvertNTFS ; erweitert dasselbe auf die gewünschte Größe ExtendOemPartition=1 ; unterdrückt die EULA-Annahmeabfrage OemSkipEula=Yes OemPreinstall=Yes ; Needed for XP - see <http://support.microsoft.com/?kbid=294801>. UnattendSwitch=Yes [Components] ; Install IIS by default iis_common=Off iis_inetmgr=Off iis_www=Off ; Docs suggest iis_pwmgr only works on Win2k, but include it ; anyway iis_pwmgr=Off ; Include docs iis_doc=Off [Data] AutoPartition=1 MsDosInitiated="0" UnattendedInstall=Yes [Display] BitsPerPel=32 Xresolution=1024 YResolution=768 Vrefresh=75 [LicenseFilePrintData] AutoMode=PerServer AutoUsers=5 [Networking] InstallDefaultComponents=Yes [NetOptionalComponents] ; Install Print Services for UNIX ; auskommentiert ;LPDSVC=1 [_meta] ;top=base.bat ; definiert den Zeitserver ntp_servers="ntp1.fau.de"
Mit dem Suchbegriff 'unattend.txt' wird man auf der Microsoftheimatseite auch noch mehr mögliche Parameter finden, normalerweise genügen die Beispiele von [unattend.sf.net] aber. Für Windows 2000 habe ich keinen Produktschlüssel angegeben, da wir das hier nicht benötigen für die Unternehmensversion. Grundsätzlich gilt: Alles, was nicht in der unattend.txt definiert ist, wird während der Installation abgefragt, insbesondere eben Produktschlüssel, Rechnernamen, Adminpasswort...
zusätzliche Programme
Ein blankes Windows ist zum Arbeiten nur bedingt nutzbar, es müssen also noch Anwendungen her. Leider hat Windows aber keine Paketverwaltung, sondern jede Anbieterin von Software bäckt ihre eigenen Brötchen. Es gibt verschiedenste Formate, wie Software daherkommen kann: Als .msi, als Install Shield Wizard.... .msi-Routinen kann man normalerweise per
BEFEHL /?
eine Liste der Optionen entlocken. Wie das bei den anderen Installationsroutinen geht, falls die Anbieterin der Software dieses Feature ausnahmsweise einmal implementiert hat, ist auf der Heimatseite von unattended schön zusammengefaßt. Auf jeden Fall bietet es sich an, ein Testwindows herzunehmen und jedes einzelne Programm auszuprobieren, bis man die optimalen Optionen gefunden hat. So gibt es etwa bei InstallShield einen Schalter '/r', mit dem alle Eingaben in der Installationsmaske protokolliert werden in 'c:\windows\install.iss'. Kopiert man diese Datei in das Verzeichnis mit der 'setup.exe', so läuft mit dem Schalter '/s' die Installation danach unbeaufsichtigt genau so ab, wie man sie vorher aufgenommen hat. Ziel dieser ganzen Aktion ist dann jeweils ein eigenes Batchfile pro Programm, das den notwendigen Installationsbefehl inklusive Parametern enthält.
Fallstricke
Hier lauern aber auch einige Fallstricke. So gibt es etwa Installationsroutinen, die in einem selbstentpackenden ZIP-File stecken und denen man folglich keine Parameter mitgeben kann. Diese müssen erst entpackt werden und dann können der eigentlichen Routine Parameter mitgegeben werden. Als Beispiele seien hier Ghostscript, FreePDFXP, OpenOffice.org und der HP Install Network Printer Wizard. Eine weitere mögliche Gemeinheit sind abzunickende EULAs. Besonders lästig natürlich bei Kommandozeilentools, die eine grafische EULA darstellen, die auch nicht per Schalter zu unterdrücken ist. Wenn man Glück hat, dann gibt es eine Option '/accepteula' oder Ähnliches. Hat man wie z.B. bei Pagedefrag von Sysinternals, jetzt Microsoft, Pech, dann hilft nur, das Programm einmal auf einem Testwindows zu installieren, den Registrykey, der die EULA-Annahme bestätigt zu exportieren und ihn vor Installation des Programmes per 'regedit /s SCHLÜSSEL' in das neue System zu importieren.
Starten des Computers
MosNis: Intro - Installation - Sonstiges - Automatisierung(AutoMosNis)->:Autoyast - Kickstart - m23 - BSD-Derivate - Jumpstart - Unattended - Schlusswort |