next up previous contents index
Next: Tipps Up: SOLARIS Previous: OS Server   Inhalt   Index

Subsections

JumpStart - Automatische Installation

JumpStart ist eine automatische Installation, welche unter Solaris verfügbar ist. Der Systemverwalter kann Maschinen in unterschiedliche Klassen einteilen. Die Stationen können dann automatisch mit der für die jeweilige Klasse passenden Konfiguration installiert werden. Diese Installationsart stellt eine Alternative zu SunInstall dar, welche im Dialog erfolgt.

Arbeitsweise von JumpStart

Installations-Server Typen

Die einzelnen Installationsschritte können von unterschiedlichen Servern mit Daten versorgt werden.

Configuration Server
Ein Server, der die individuellen Konfigurationsdateien bereithält, welche während des Installationsvorganges benötigt werden.
Install Server
Der Server, der das Solaris 7 Installationsmedium (meist CD-ROM) bereitstellt. Install-Server und Configuration-Server sind meist dieselbe Maschine.
Boot Server
Ein Server, der die nötigen Dienste und Boot-Dateien bereitstellt, um einen Netzwerk-Client über das Netzwerk booten zu können bzw. eine Installation zu ermöglichen.
JumpStart Ablauf



Client Server
Einschalten der Maschine bzw. 'ok boot net - install'  
Client schickt RARP Anforderung  
  BootServer: Prozess in.rarpd antwortet mit IP-Adresse
Client eröffnet tftp-Verbindung  
  BootServer: in.tftp sendet JumpStart Bootimage
JumpStart Bootimage wird gestartet und fordert hostconfig an  
  BootServer: ermittelt hostconfig Daten aus bootparams und sendet diese
Mountet root Dateisystem per NFS und startet Unix-Kernel
'/platform/ ` uname -m ` /kernel/unix'
 
Mountet Konfigurationsverzeichnis vom Configuration-Server und startet sysidtool  
Mountet Installationsverzeichnis vom Install-Server und startet SunInstall  



Einrichten eines JumpStart Servers

Konfiguration, wenn NIS vorhanden ist

Die automatische Systeminstallation erfordert folgende Informationen:

Die Locale (Sprachvariante) wird standardmäßig nicht von NIS unterstützt und muss zuvor manuell hinzugefügt werden.

Hinzufügen einer NIS Map 'Locale'

  1. /var/yp/Makefile modifizieren:

    1. Folgenden Eintrag nach den *.time Einträgen (ca. Zeile 305) hinzufügen
      locale.time: $(DIR)/locale 
        -@if [ -f $(DIR)/locale ]; then \ 
          sed -e "/ ^ #/d" -e s/#.*$$// $(DIR)/locale \ 
          | awk '{for (i = 2; i <= NF; i++) print $$I, $$0}' \ 
          | $(MAKEDBM) - $(YPBDIR)/$(DOM)/locale.byname; \ 
          touch locale.time; \ 
          echo "updated locale"; \ 
          if [ ! $(NOPUSH) then \ 
            $(YPPUSH) locale.byname; \ 
            echo "pushed locale"; \ 
          else \ 
          : ; \ 
          fi \ 
        else \ 
          echo "couldn't find $(DIR)/locale"; \ 
        fi

    2. Das Wort locale beim Ziel all: hinzufügen (ca. Zeile 47)
    3. Am Ende der Datei hinzufügen:
      locale: locale.time

  2. Datei /etc/locale erzeugen und einen Eintrag von folgendem Format machen:
    domainname    locale
  3. NIS Map erzeugen:
    # cd /var/yp  
    # make


Dateien /etc/hosts und /etc/ethers anpassen:

  1. MAC-Adressen und Hostnamen der Systeme, welche per JumpStart installiert werden sollen in die Datei /etc/ethers eintragen.
  2. IP-Adressen und Hostnamen der Systeme in die Datei /etc/hosts eintragen.
  3. Zu einem der Rechner in der Datei /etc/hosts einen Aliasnamen timehost hinzufügen.
  4. NIS Maps neu erstellen:
    # cd /var/yp 
    # make


Zeitzonen (etc/timezone) und Netzmasken (/etc/netmasks) festlegen :

  1. Falls nicht vorhanden, erzeugen der Datei /etc/timezone. Der NIS-Domäne wird eine Zeitzone zugeordnet. Bsp:
    US/Mountain    Central.Sun.COM

  2. Ergänzen der Datei /etc/netmasks. Es wird die Netzadresse und die dazugehörige Netzmaske eingetragen. Bsp:
    192.168.0.0    255.255.0.0

  3. NIS Maps neu erzeugen:
    # cd /var/yp 
    # make

Kein Name Service vorhanden:

Falls im Netzwerk kein Nameservice wie NIS oder NIS+ vorhanden ist, müssen in der Datei /etc/hosts am JumpStart Bootserver alle IP-Adressen und Hostnamen jener Rechner eingetragen werden, welche per JumpStart installiert werden sollen.

Außerdem können durch eine sysidcfg Datei zusätzliche Parameter übergeben werden. Existiert kein Nameservice und keine sysidcfg Datei, so werden die benötigten Daten während der Installation im Dialog abgefragt.


sysidcfg Datei

Diese Datei enthält Informationen, welche während der Installation von Solairs benötigt werden. Die Datei hat folgenden Aufbau:

KEYWORD ARGUMENT

Jedes Keyword-Argument Paar muss in einer einzelnen Zeile stehen! Folgende Schlüsselwörter können verwendet werden:



KEYWORD ARGUMENT
name_service NIS | NIS+ | OTHER | NONE {domain_name=domainname}
network_interface interface_name {hostname=hostname ip_address=ipaddress netmask=netmask}
root_password verschlüsseltes Passwort (/etc/shadow)
system_locale Eintrag von /usr/lib/locale
terminal Eintrag von /usr/share/lib/terminfo Datenbasis
timezone Eintrag von /usr/share/lib/zoneinfo
timeserver localhost, IP-Adresse oder Hostname aus /etc/hosts



Für die Datei sysidcfg gelten folgende Regeln:

Beispiel:

# Sample sysidcfg file for SPARC systems 
system_locale=en_US 
timezone=US/Central 
timeserver=93.15.6.83 
name_service=NONE 
root_password=HDzyeüRoGQo7b 
network_interface=hme0 {netmask=255.255.255.0}

Der Ort der Datei sysidcfg (Rechner und absoluter Pfadname) wird im add_install_client Skript festgelegt (siehe Seite [*]).

Erstellen eines individuellen Konfigurationsverzeichnisses

Ein Konfigurationsverzeichnis enthält mindestens eine rules und eine class Datei. Nachdem diese beiden Dateien erstellt wurden, müssen sie mit dem Kommando check überprüft werden. Ist die Syntax OK, so erzeugt das Skript check eine Datei rules.ok. Die eigentliche Installation arbeitet mit der Datei rules.ok und nicht mit der Datei rules. Optional können noch die beiden Skripte begin und finish erstellt werden


Datei rules

Die Datei rules klassifiziert die Maschinen im Netz. Nach der Installation des jumpstart_sample Verzeichnisses von der Solaris 7 CD befindet sich eine Beispieldatei von rules am Rechner. Diese Datei wird sequentiell abgearbeitet. Nach jedem Einlesen einer Regel wird diese vom JumpStart Prozess abgearbeitet bevor die Datei weiter eingelesen wird.

Die Einträge haben folgendes Format:

[!] match_key match_value [&& [!] match_key match_value]* \ 
begin class finish

Die Felder bedeuten:

match_key
vordefiniertes Schlüsselwort. Damit werden Kriterien festgelegt, womit Maschinen klassifiziert werden können.
Folgende Schlüsselwörter stehen zur Verfügung:


any hostname model
arch installed network
domainname karch totaldisk
disksize memsize  



match_value
Wert oder Wertebereich, der vom Systemverwalter für das jeweilige Schlüsselwort festgelegt wird.
begin
Name des begin Skriptes. Wird kein begin Skript verwendet, so ist stattdessen das Zeichen '-' einzutragen.
class
Name der class Datei.
finish
Name des finish Skriptes, oder das Zeichen '-', falls nicht verwendet.
&&
Mit Hilfe von '&&' können logische Verknüpfungen von Regeln definiert werden. && steht für ein logisches AND
!
Das Zeichen '!' steht für ein logisches NOT.
#
Kommentarzeilen können durch das Zeichen '#' am Zeilenbeginn gekennzeichnet werden. Es sind auch Leerzeilen erlaubt.
Beispiel:

network 192.43.34.0 && ! model 'SUNW,Sun 4_50' - class_net3 -  
model 'SUNW,Sun 4_50' - class_ipx complete_ipx 
 
hostname adm1 - class_basic_user - 
memsize 16-32 && arch sparc - class_prog_user - 
 
# This last rule matches any system that has not matched a rule above. 
any - - class_generic -

Bedeutung der Beispieleinträge:


Class Datei

Die class Datei, deren Name in der Regeldatei rules hinterlegt wird, bestimmt wie die Installation durchgeführt wird und welche Softwarepakete installiert werden. Der Name der class Dateien ist frei wählbar. Es existieren auch hierfür vordefinierte Schlüsselwörter:



Keyword Parameter
install_type initial_install | upgrade
system_type standalone | dataless | server
partitioning default | existing | explicit
cluster cluster_name add | delete
package package_name add | delete
usedisk disk_name
dontuse disk_name
locale locale_name
num_clients number
client_swap size
client_arch kernel_architecture
filesys devide size filesystem optional_parameters



Beispiel 1:

# Select software for programmers 
install_type initial_install 
system_type standalone 
partitioning default 
filesys any 60 swap # specify size of swap 
filesys s-ref:/usr/share/man - /usr/share/man ro,soft 
cluster SUNWCprog 
package SUNWman delete 
package SUNWypr add 
package SUNWypu add

Im Beispiel wird ein System für Programmierer installiert. Es wird die Standardpartitionierung verwendet, aber die Swap-Größe wird mit 60MB festgelegt. Der Software-Cluster SUNWCprog enthält Entwicklersoftware. Die Online Manuale werden gelöscht, da sie vom Server s-ref per NFS gemountet werden. Die für NIS benötigten Pakete werden hinzugefügt.

Beispiel 2:

install_type initial_install 
system_type standalone 
partitioning explicit 
filesys c0t3d0s0 150 / 
filesys c0t3d0s1 128 swap 
filesys c0t3d0s6 800 /usr 
filesys c0t3d0s7 free /var 
filesys c0t1d0s7 all /opt 
cluster SUNWCall 
package SUNWman delete

Im zweiten Beispiel werden die Partitiongrößen explizit angegeben.

Zur Erstellung eines Konfigurationsverzeichnisses sind folgende Schritte erforderlich:

  1. Auswahl des Rechners und es Verzeichnisses wo die Konfigurations Informationen abgelegt werden sollen.
  2. Mounten der Solaris 7 CD und Kopie des jumpstart_sample Verzeichnisses in das neue Konfigurationsverzeichnis.
  3. Freigabe des Konfigurationsverzeichnisses per NFS:

    1. Datei /etc/dfs/dfstab editieren.
    2. shareall Kommando ausführen
  4. Erheben der unterschiedlichen Klassen von Maschinen im Netz und Erstellen der Datei rules.
  5. Die in der Datei rules erwähnten class Dateien erzeugen und editieren.
  6. Falls erforderlich auch die begin und finish Skripte erstellen. Das begin Skript läuft vor Abarbeitung der class Datei. Das finish Skript läuft am Ender der Abarbeitung der class Datei vor dem Reboot.
  7. check Skript starten. Falls Fehler auftreten, diese beheben. Nach erfolgreichem Ablauf des check Skriptes muss eine Datei rules.ok vorhanden sein.
    # cd /configuration_directory
    # ./check38
  8. Überprüfen der class Dateien mit dem Kommando pfinstall. Das Kommando läuft nur dann korrekt, wenn Configuration- und Install-Server auf derselben Maschine laufen bzw. auf beiden Servern dieselbe Solaris-Version läuft.
/usr/sbin/install.d/pfinstall
-D | -d disk_file [-c path_to_distr] class_file_name

-D
überprüft die Datei class_file_name, und gibt Plattenaufteilung und Softwareauswahl aus. Es wird aber keine Information auf Platte geschrieben.
-d disk_file
Die Plattenaufteilung wird auf Plausibilität überprüft. Dies geschieht mit Hilfe der Datei disk_file, welche die Ausgabe von prtvtoc von den Platten enthält.
-c path_to_distr
Angabe des Pfades, wo sich Solaris 7 befindet.
Beispiele:

# /usr/sbin/install.d/pfinstall -D -c /cdrom/cdrom0/s0 prog_class

# /usr/sbin/install.d/pfinstall -d disk_file -c /cdrom/cdrom0/s0 prog_class

# /usr/sbin/install.d/pfinstall -D -c /export/install prog_class

Einrichten des Install/Boot-Servers

  1. Auswahl der Maschine im Netzwerk für den Install Server
  2. Solaris 7 CD mounten und freigeben oder den Inhalt auf Platte kopieren (benötigt ca. 510 MB freien Platz)
    # cd /cdrom/cdrom0/s0/Solaris_2.7/Tools 
    # ./setup_install_server /export/install

  3. Install Clients hinzufügen mittels Kommando add_install_client nachdem das Konfigurationsverzeichnis fertig konfiguriert wurde.

Einrichten des Boot-Servers

  1. Auswahl des Boot-Servers. Es werden je HW-Architektur der Clients etwa 156MB freier Plattenplatz benötigt.
  2. Solaris 7 CD mounten
  3. Wechsel in das Mountverzeichnis und Aufruf des setup_install_server Skripts
    # cd /cdrom/cdrom0/s0/Solaris_2.7/Tools 
    # ./setup_install_server -b exported_dir_for_client_support 
    exported_dir_for_client_support bezieht sich auf das Verzeichnis, das die Boot-Images der Clients enthält.
  4. Wechsel nach exported_dir_for_client_support
  5. Hinzufügen der Install Clients mittels Kommando add_install_client nachdem das Konfigurationsverzeichnis fertig konfiguriert wurde.
add_install_client
-e ethernet_address -i ip_address -s install_svr:/distr -c config_svr:/config_dir -p config_svr:/config_dir client_name client_arch

-e
Ethernet-Adresse des Clients (kann beim Einschalten des Clients der banner-Information entnommen werden)
-i
IP-Adresse des Clients
-s
Name und Pfad des Install-Servers (host:/cdrom/cdrom0/s0)
-c
Angabe des Namen und Pfades des Configuration Servers
-p
Name Configuration Servers und Pfad zur Datei sysidcfg.
add_install_client übernimmt nötige Änderungen in der Datei /etc/bootparams. Wird NIS verwendet, muss anschließend die neue NIS Map erzeugt und verteil werden mit make im Verzeichnis /var/yp.


next up previous contents index
Next: Tipps Up: SOLARIS Previous: OS Server   Inhalt   Index