BigAdmin System Administration Portal
Utilisation de Solaris JumpStart avec le SE Solaris 10 pour les plates-formes x86/x64
Print-friendly VersionPrint-friendly Version

Utilisation de Solaris JumpStart avec le SE Solaris 10 pour les plates-formes x86/x64

Craig Winter et Dale Layfield, mars 2007


Synthèse

La technologie Solaris JumpStart de Sun Microsystems sert à automatiser l'installation du système d'exploitation Solaris et d'autres logiciels associés sur plusieurs noeuds d'un réseau.

L'utilisation du logiciel Solaris JumpStart sur le SE Solaris 10 pour les plates-formes x86/x64 est très similaire à l'utilisation du SE Solaris 10 pour les plates-formes SPARC. Il existe toutefois des différences subtiles qui doivent être traitées pour un fonctionnement correct.

Ce document indique les étapes et fournit les explications nécessaires pour configurer un serveur JumpStart pour le SE Solaris 10 sur une machine Sun x86/x64, ainsi que pour configurer JumpStart pour plusieurs clients.

Consultez le document Sun en ligne Utilisation personnalisée de JumpStart comme référence générale.


Présentation

Cet article présente les procédures étape par étape de création d'un serveur JumpStart utilisant le SE Solaris 10 pour les plates-formes x86/x64. Cette version du SE Solaris 10 sert à la fois au SE exécuté sur le serveur et au SE sur le serveur d'installation JumpStart. Des machines à processeur AMD Opteron et Intel ont été utilisées comme serveurs et clients sans préférence de processeur utilisé pour chacune.

Les instructions fournies permettent de :

Pre-boot Execution Environment (PXE) doit être activé sur les clients pour leur permettre de démarrer à partir du réseau. Sur certains clients, PXE doit être activé dans le BIOS.

Un bogue de création du fichier d'initialisation du client est résolu dans la section Nettoyage final.


Procédure Solaris JumpStart

Ces instructions sont destinées à la configuration d'un serveur d'installation JumpStart qui installera le SE Solaris 10 pour plates-formes x86/x64 sur deux clients.

Dans cet exercice, le nom de noeud du serveur JumpStart eststinger2 et son adresse IP 172.16.64.194. L'adresse IP par défaut du routeur est 172.16.64.1. L'adresse réseau où le serveur JumpStart réside est 172.16.64.0.

Au besoin, vous pouvez télécharger le SE Solaris 10.

1. Créez un serveur d'installation JumpStart

a. Créez un répertoire d'installation sur le serveur :

# mkdir -p /export/install

b. Insérez le DVD du SE Solaris 10 pour plates-formes x86/x64 dans le lecteur de DVD du serveur. Créez le serveur d'installation en accédant au répertoireSolaris_10/Tools sur le DVD et en exécutant la commande setup_install_server. Le logiciel Solaris est copié dans le répertoire nouvellement créé. Spécifiez le nom de chemin absolu comme argument.

# cd /cdrom/cdrom0/Solaris_10/Tools
  # ./setup_install_server /export/install
  Verifying target directory...
  Calculating the required disk space for the Solaris_10 product
  \|/-\|/-
  Calculating space required for the installation boot image
  \|/-\|/-
  Copying the CD image to disk...
  \|/-\|/-
  Copying Install Boot Image hierarchy...
  \|/-\|/-
  Copying /boot x86 netboot hierarchy...
  \|/-\|/-
  Install Server setup complete
  #

c. Vérifiez que le répertoire install a été rempli.

  # du -sk /export/install

  3083278 /export/install

d. Retirez le DVD du lecteur.

  # cd /;eject

Créez les fichiers de configuration du client

Les fichiers de configuration du client servent à contrôler une installation JumpStart personnalisée.

a. Créez un répertoire de configuration où les fichiers résideront :

  # mkdir /export/config

b. Créez le fichier sysidcfg :

Le premier fichier à créer est sysidcfg. Ce fichier doit être bien formaté avec des informations correctes, faute de quoi il est ignoré et l'installation pratique de JumpStart est abandonnée. L'installation interactive par défaut de Solaris la remplace alors.

Un client JumpStart recherche un fichier intitulé sysidcfg avant le début de l'installation du SE. Ce fichier doit être intitulé "sysidcfg" ; par conséquent, pour disposer de plusieurs versions du fichier, chaque fichier sysidcfg doit résider dans un répertoire distinct. Chaque client peut avoir son propre fichier sysidcfg, ou plusieurs clients peuvent utiliser le même fichier sysidcfg. Le fichier sysidcfg est affecté à un client par la commande add_install_client. La création de deux fichiers sysidcfg est présentée ci-dessous :

  # cd /export/config
  # mkdir sysidcfg1
  # cd sysidcfg1
  # vi sysidcfg

  system_locale=en_US.ISO8859-1
  timezone=US/Pacific
  timeserver=localhost
  terminal=vt100
  name_service=NONE
  security_policy=NONE
  root_password=<encrypted from /etc/shadow>
  network_interface=bge0 {hostname=client1
                          netmask=255.255.255.0
                          protocol_ipv6=no
                          default_route=172.16.64.1}

  :wq

  # cd ../
  # mkdir sysidcfg2
  # cd sysidcfg2
  # vi sysidcfg

  system_locale=en_US.ISO8859-1
  timezone=US/Pacific
  timeserver=localhost
  terminal=vt100
  name_service=NONE
  security_policy=NONE
  root_password=<encrypted from /etc/shadow>
  network_interface=bge0 {hostname=client2
                          netmask=255.255.255.0
                          protocol_ipv6=no
                          default_route=172.16.64.1}

  :wq

c. Créez le fichier rules :

Le fichier suivant à créer est rules. Il s'agit d'un fichier texte qui contient une règle pour chaque client ou groupe de clients sur lesquels le SE Solaris sera installé. Chaque ligne du fichier rules indique à JumpStart quels fichiers begin, profile etfinish utiliser pour chaque client ou groupe de clients.

Seul le fichier rules permet de le faire. Il peut contenir de nombreuses lignes, en fonction du nombre de configurations uniques nécessaires. Le contenu d'un fichierrules comportant des informations pour deux clients distincts est indiqué ci-dessous :

  # cd /export/config
  # vi rules

  hostname client1 begin1 profile1 finish1
  hostname client2 begin2 profile2 finish2

  :wq

Le fichier rules est utilisé par le script check lorsqu'il crée le fichier rules.ok. La création réussie du fichier rules.ok est nécessaire pour les installations JumpStart personnalisées.

d. Créez le fichier begin :

Le fichier begin est un script Bourne shell défini par l'utilisateur, utilisé pour effectuer des tâches sur le client avant le début de l'installation du SE Solaris. Ces tâches comprennent généralement la création de profils dérivés et la sauvegarde des fichiers avant mise à niveau.

Plusieurs fichiers begin peuvent être utilisés s'il y a lieu. La création de deux fichiers begin est indiquée ci-dessous :

  # cd /export/config
  # vi begin1

  #!/bin/sh
  echo "Begin Script for JumpStart client1..."

  :wq

  # vi begin2

  #!/bin/sh
  echo "Begin Script for JumpStart client2..."

  :wq

  # chmod 755 begin*

Pendant l'installation du client, la sortie du fichier begin est écrite dans /tmp/begin.log. Une fois l'installation terminée, le fichier journal se trouve dans /var/sadm/system/logs/begin.log.

Le Guide d'installation Solaris 10 comprend une section Variables d'environnement JumpStart personnalisées qui décrit les variables utilisables dans les scripts begin.

e. Créez le fichier finish :

Le fichier finish est un script Bourne shell défini par l'utilisateur, utilisé pour effectuer des tâches sur le client une fois l'installation du SE Solaris terminée. Ce script sert généralement à ajouter des fichiers, ajouter des packages et des patchs, personnaliser l'environnement root et installer des logiciels supplémentaires.

Plusieurs fichiers finish peuvent être utilisés s'il y a lieu. La création de deux fichiers finish est indiquée ci-dessous :

  # cd /export/config
  # vi finish1

  #!/bin/sh
  echo "Finish Script for JumpStart client1..."
  echo "Get rid of the nfs prompt during the initial boot"
  touch /a/etc/.NFS4inst_state.domain

  :wq

  # vi finish2

  #!/bin/sh
  echo "Finish Script for JumpStart client2..."
  echo "Get rid of the nfs prompt during the initial boot"
  touch /a/etc/.NFS4inst_state.domain

  :wq

  # chmod 755 finish*

Le programme d'installation Solaris monte les systèmes de fichiers du système client sur /a. Le script finish peut servir à ajouter, modifier ou supprimer les fichiers en rapport avec /a. Ces systèmes de fichier demeurent montés sur/a jusqu'au redémarrage du système initial.

Le répertoire JumpStart, c'est à dire/export/install, est monté sur le répertoire spécifié par la variable SI_CONFIG_DIR. Le répertoire défini est /tmp/install_config par défaut. Les fichiers peuvent être copiés du répertoire JumpStart vers le client par les commandes exécutées dans le script finish. Les fichiers à ajouter au système installé sont placés dans le répertoire JumpStart et sont accessibles par le client.

La ligne suivante du script finish copie un fichier dans la hiérarchie du système de fichiers nouvellement installé sur le client :

  cp /tmp/install_config/<file_name> /a/<path_name>/

f. Créez le fichier profile :

Le fichier profile est un fichier texte qui définit comment le SE Solaris est installé sur un client.

Plusieurs fichiers profile peuvent être créés. Plusieurs clients peuvent utiliser le même fichier profile, ou chaque client peut avoir son propre fichier profile. La création de deux fichiers profile est indiquée ci-dessous :

  # cd /export/config
  # vi profile1

  # install_type MUST be first
  install_type      initial_install

  # start with the minimal required number of packages
  cluster           SUNWCXall
  cluster           SUNWCapache delete
  cluster           SUNWCpcmc   delete
  cluster           SUNWCpcmcx  delete
  cluster           SUNWCthai   delete
  cluster           SUNWClp     delete
  cluster           SUNWCnis    delete
  cluster           SUNWCppp    delete

  # format the entire disk for Solaris
  fdisk   all   solaris all

  # define how the disk is partitioned
  partitioning      explicit
  filesys           rootdisk.s0 6144  /
  filesys           rootdisk.s1 1024  swap
  filesys           rootdisk.s7 free  /state/partition1

  # install systems as standalone
  system_type standalone

  # specify patches to install
  patch 119281-06 nfs 172.16.64.194:/export/patches

  # specify packages to install
  package SPROcc add nfs 172.16.64.194:/export/packages

  :wq

  # vi profile2

  # install_type MUST be first
  install_type      initial_install

  # start with the minimal required number of packages
  cluster           SUNWCXall
  cluster           SUNWCapache delete
  cluster           SUNWCpcmc   delete
  cluster           SUNWCpcmcx  delete
  cluster           SUNWCthai   delete
  cluster           SUNWClp     delete
  cluster           SUNWCnis    delete
  cluster           SUNWCppp    delete

  # format the entire disk for Solaris
  fdisk   all   solaris all

  # define how the disk is partitioned
  partitioning      explicit
  filesys           rootdisk.s0 6144  /
  filesys           rootdisk.s1 4096  swap
  filesys           rootdisk.s7 free  /state/partition1

  # install systems as standalone
  system_type standalone

  # specify patches to install
  patch 119281-06 nfs 172.16.64.194:/export/patches

  # specify packages to install
  package SPROcc add nfs 172.16.64.194:/export/packages

  :wq

g. Créez le script check :

Le script check sert à valider que les fichiers rules et profile sont configurés correctement. Copiez d'abord le script check dans le répertoire local, c'est-à-dire/export/config, comme indiqué :

  # cd /export/config
  # cp /export/install/Solaris_10/Misc/jumpstart_sample/check .

h. Exécutez le script de vérification :

  # ./check
  Validating rules...
  Validating profile profile1...
  Validating profile profile2...
  The custom JumpStart configuration is ok.

S'il n'y a pas d'erreur, le fichier rules.ok est créé. Il s'agit du même fichier que rules, dont les commentaires et les lignes vides ont été supprimés. Le script check ajoute le commentaire suivant à la fin du fichier rules.ok :

  # version=2 checksum=<num>

3. Partagez les répertoires d'installation et de configuration

a. Modifiez dfstab pour partager les répertoires JumpStart.

b. Editez le fichier /etc/dfs/dfstab :

  # vi /etc/dfs/dfstab

  #       Place share(1M) commands here for automatic execution
  #       on entering init state 3.
  #
  #       Issue the command 'svcadm enable network/nfs/server' to
  #       run the NFS daemon processes and the share commands, after
  #       adding the very first entry to this file.
  #
  #       share [-F fstype] [ -o options] [-d "<text>"] <pathname>
  #       [resource]
  #       for example,
  #       share  -F nfs  -o rw=engineering  -d "home dirs"  /export/home2

  share -F nfs -o ro,anon=0 /export/install
  share -F nfs -o ro,anon=0 /export/config
  share -F nfs -o ro,anon=0 /export/patches
  share -F nfs -o ro,anon=0 /export/packages

  :wq

c. Démarrez le serveur NFS.

  # /etc/init.d/nfs.server start

d. Partagez les répertoires.

  # shareall
  # share
  -               /export/install   ro,anon=0   ""
  -               /export/config   ro,anon=0   ""
  -               /export/patches   ro,anon=0   ""
  -               /export/packages   ro,anon=0   ""

e. Vérifiez le partage.

  # showmount -e localhost
  export list for localhost:
  /export/install  (everyone)
  /export/config   (everyone)
  /export/patches  (everyone)
  /export/packages (everyone)

4. Créez les fichiers tftpboot du client

a. Exécutez le script add_install_client pour chaque client.

b. Accédez à l'emplacement du script add_install_client :

  # cd /export/install/Solaris_10/Tools

c. Exécutez le script add_install_client pour chaque client sur le réseau qui effectue une installation JumpStart. Vérifiez que vous utilisez les arguments corrects pour chaque client. L'argument -e est l'adresse MAC du client et l'argument -p indique le nom du répertoire du fichier sysidcfg que le client utilise. L'exécution de add_install_client pour deux clients distincts est indiquée ci-dessous :

  # ./add_install_client \
      -d \
      -e 00:0a:e4:37:16:4d \
      -s 172.16.64.194:/export/install \
      -c 172.16.64.194:/export/config \
      -p 172.16.64.194:/export/config/sysidcfg1 i86pc

  enabling tftp in /etc/inetd.conf
  Converting /etc/inetd.conf
  enabling network/tftp/udp6 service
  copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1

  If not already configured, enable PXE boot by creating
  a macro named 01000AE429C1FD with:
    Boot server IP (BootSrvA) : 172.16.64.194
    Boot file      (BootFile) : 01000AE429C1FD

  # ./add_install_client \
      -d \
      -e 00:0a:e4:2a:33:f8 \
      -s 172.16.64.194:/export/install \
      -c 172.16.64.194:/export/config \
      -p 172.16.64.194:/export/config/sysidcfg2 i86pc

  enabling tftp in /etc/inetd.conf
  Converting /etc/inetd.conf
  enabling network/tftp/udp6 service
  copying boot file to /tftpboot/pxegrub.I86PC.Solaris_10-1

  If not already configured, enable PXE boot by creating
  a macro named 01000AE42A33F8 with:
    Boot server IP (BootSrvA) : 172.16.64.194
    Boot file      (BootFile) : 01000AE42A33F8

Les valeurs Boot server IP et Boot file sont utilisées ultérieurement lors de la création de macros pendant l'exécution de dhcpmgr.

5. Configurez et exécutez le serveur DHCP

a. Exécutez dhcpmgr:

  # /usr/sadm/admin/bin/dhcpmgr
  Java Accessibility Bridge for GNOME loaded.

Le premier écran s'affiche :
(Cliquez sur les images pour les agrandir)

b. Sélectionnez Configurer comme serveur DHCP et cliquez sur OK.

L'assistant de configuration DHCP s'affiche :

c. Sélectionnez Fichiers texte et cliquez sur Suivant.

d. Vérifiez le chemin de stockage et cliquez sur Suivant.

e. Sélectionnez un service de noms et cliquez sur Suivant.

f. Vérifiez les informations de bail et cliquez sur Suivant.

g. Vérifiez les informations de domaine DNS et cliquez sur Suivant.

h. Vérifiez les informations de réseau et et cliquez sur Suivant.

i. Sélectionnez le type de réseau et l'option de routage et et cliquez sur Suivant.

j. Vérifiez les informations de domaine NIS et et cliquez sur Suivant.

k. Vérifiez les informations de domaine NIS+ et cliquez sur Suivant.

l. Contrôlez les paramètres et cliquez sur Terminé.

Le gestionnaire DHCP s'affiche et vous demande de démarrer l'assistant d'adresse :

m. Cliquez sur Oui.

L'assistant d'adresse s'affiche :

n. Tapez le nombre d'adresses IP et et cliquez sur Suivant.

o. Vérifiez les informations de serveur et et cliquez sur Suivant.

p. Vérifiez les adresses IP et et cliquez sur Suivant.

q. Vérifiez les informations de configuration du client et et cliquez sur Suivant.

r. Sélectionnez le type de bail et et cliquez sur Suivant.

s. Contrôlez les paramètres et cliquez sur Terminé.

dhcpmgr étant toujours en cours d'exécution, créez les macros BootFile et BootSrvA. Pour accéder au formulaire de création de macros, sélectionnez d'abord l'onglet Macros dans le formulaire du gestionnaire DHCP. Sélectionnez ensuite Edition->Créer dans le menu supérieur.

Le formulaire de création de macros s'affiche :

t. Créez la portion BootFile de la macro en tapant le nom généré par le script add_install_client pour le premier client dans le champ Nom. Ce nom est également utilisé dans le champ Valeur d'option. Une fois les informations tapées, cliquez sur Ajouter.

u. Créez la portion BootSrvA de la macro en tapant l'adresse IP réseau du serveur JumpStart dans le champ Valeur d'option. Une fois les informations tapées, cliquez sur Ajouter. Cliquez ensuite sur OK pour terminer la création de la première macro.

v. Répétez le même processus pour créer la deuxième macro.

x. Cliquez sur Ajouter.

y. Cliquez sur Ajouter puis sur OK.

z. Une fois la deuxième macro générée, sélectionnez Fichier->Quitter dans la fenêtre du gestionnaire DHCP pour fermer l'utilitaire dhcpmgr.

Nettoyage final

Lors de l'exécution du script add_install_client, le script a créé un fichier menu.lst<filename> pour chaque client.

En raison d'un bogue dans la création du fichier/tftpboot/menu.lst<BootFile: Name>, vous devez ajouter le texte suivant après kernel/unix on sur la ligne 4 :

- install dhcp

Par conséquent, modifiez le fichier de :

default=0
timeout=30
title Solaris_10 Jumpstart
    kernel /I86PC.Solaris_10-1/multiboot kernel/unix -B \
install_config=172.16.64.194:/export/config, \
sysid_config=172.16.64.194:/export/config/sysidcfg1, \
install_media=172.16.64.194:/export/install, \
install_boot=172.16.64.194:/export/install/boot
    module /I86PC.Solaris_10-1/x86.miniroot

pour :

default=0
timeout=4
title Solaris_10 Jumpstart
    kernel /I86PC.Solaris_10-1/multiboot kernel/unix - install dhcp -B \
install_config=172.16.64.194:/export/config, \
sysid_config=172.16.64.194:/export/config/sysidcfg1, \
install_media=172.16.64.194:/export/install, \
install_boot=172.16.64.194:/export/install/boot
    module /I86PC.Solaris_10-1/x86.miniroot

Effectuez une installation pratique de JumpStart

    Démarrez les clients.

    Une fois l'invite affichée, appuyez sur F12 sur le clavier du client.

    Network Boot Request....
    
    CLIENT MAC ADDR: 00 0A E4 2A 33 F8  GUID: 11223344 556 7788 99AA \
                                              BBCCDDEEFF00
    
    DHCP....\|/-\|/-
    

    Si tout est configuré correctement, l'installation s'exécute jusqu'à la fin. En cas de problème, l'installateur se ferme et tombe dans un shell. La cause de l'erreur est enregistrée dans le fichier install_log.


Après l'installation

Les fichiers journaux de l'installation JumpStart sont les suivants :

  /var/sadm/system/logs/install_log
                        begin_log
                        finish_log
                        sysidtool.log

A propos des auteurs

Craig Winter et Dale Layfield sont des ingénieurs de MDE Verticals Group du Market Development Engineering chez Sun Microsystems, Inc.


Unless otherwise licensed, code in all technical manuals herein (including articles, FAQs, samples) is provided under this License.


BigAdmin
  
 
BigAdmin Upgrade Hub