BigAdmin System Administration Portal
Configuration de JumpStart avec le SE Solaris 10 pour les plates-formes SPARC et ZFS
Print-friendly VersionPrint-friendly Version
This content is submitted by a BigAdmin user. It has not been reviewed for technical accuracy by Sun Microsystems, though it may have been lightly edited to improve readability. If you find an error or would like to comment on the article, please contact the submitter or use the comment field at the bottom of the article. Community submissions may not follow Sun trademark guidelines. For information on Sun trademarks, please see http://www.sun.com/suntrademarks/.
 
 

Configuration de JumpStart avec le SE Solaris 10 pour les plates-formes SPARC et ZFS

Lucas Williams, janvier 2008

Présentation

La configuration dont je disposais était un serveur Sun Enterprise 3500 exécutant le système d'exploitation Solaris 10 pour les plates-formes SPARC avec ZFS et une machine cliente (un serveur Sun Netra X1). Je voulais installer le SE Solaris 10 sur le client pour un projet que mon entreprise était prête à lancer.

J'espère que cette visite guidée de mon processus pourra aider quiconque a les mêmes besoins.

Remarque : j'ai utilisé la version Solaris 10 08/07, mais la procédure fonctionne aussi avec les versions antérieures jusqu'à la version 03/05.

Sommaire :

Cet article aborde les thèmes suivants :

Conditions préalables

Vérifiez que vous êtes connecté comme utilisateur root ou autre administrateur système.

Votre serveur d'initialisation doit aussi être votre serveur DHCP. Toutefois, mes machines obtenant DHCP à partir d'un autre serveur, et mes serveurs étant configurés avec des IP statiques, je ne l'ai pas fait.

Vos services tftp et nfs doivent également être exécutés. Lorsque j'ai installé le SE Solaris 10 sur mon serveur, j'ai activé NFS dès le départ, mais j'ai dû créer un service pour tftp. Heureusement, cette opération est extrêmement facile, car la configuration est presque prête. Vous n'avez qu'à effectuer un ou deux changements rapides, comme suit :

1. Éditez le fichier inetd.conf. Si vous maîtrisez bien vi, faites en usage. Sinon, utilisez un autre éditeur de texte. J'ai effectué les opérations suivantes à partir d'un terminal SSH, car aucune de mes machines ne disposait d'un écran ou d'un clavier.

# cd /etc
# vi inetd.conf

2. Faites défiler le fichier vers le bas, jusqu'au lignes suivantes :

# TFTPD - tftp server (primarily used for booting)
# tftp dgram  udp6  wait root  /usr/sbin/in.tftpd  in.tftpd -s
/tftpboot

3. Supprimez le commentaire de la dernière ligne et enregistrez le document de sorte qu'il présente l'aspect suivant :

tftp  dgram  udp6  wait root /usr/sbin/in.tftpd  in.tftpd -s
/tftpboot

4. Tapez :wq pour enregistrer le fichier et quittez vi.

5. Exécutez inetconv pour que le service soit ajouté à l'utilitaire gestion des services (SMF, Service Management Facility) :

# inetconv

6. Exécutez ensuite svcadm pour activer le service, et vous êtes prêt :

# svcadm enable tftpd

Le moment est venu de configurer les pools de stockage ZFS, de copier les fichiers et de préparer les fichiers de configuration...la partie plaisante.

Configuration des pools de stockage ZFS

J'ai créé un nouveau pool sur le serveur Solaris JumpStart :

# zpool create install c1t7d0

Je disposais d'un disque de rechange non utilisé sur le serveur, qui est devenu mon pool de serveur Solaris JumpStart. Ensuite, j'ai créé les partages.

# zfs create install/config
# zfs create install/boot
# zfs set sharenfs=ro,anon=0 install
# zfs set sharenfs=ro,anon=0 install/config
# zfs set sharenfs=ro,anon=0 install/boot

Après, j'ai vérifié que tous mes répertoires étaient présents et que tout était partagé correctement :

# cd /install
# ls -l
drwxr-xr-x   4 root     sys       5 Jan  8 10:25 boot
drwxr-xr-x   2 root     sys       9 Jan  8 10:16 config
#
# share
-               /install   ro,anon=0   ""
-               /install/config   ro,anon=0   ""
-               /install/boot   ro,anon=0   ""

Copie des fichiers

J'ai alors inséré le premier CD de Solaris 10 HW807 SPARC dans le lecteur de CD-ROM de mon serveur Sun Enterprise 3500. J'ai accédé au répertoire cdrom du CD et exécuté le script setup_install_server :

# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server /install

Le script s'est exécuté et a copié les fichiers nécessaires dans mon répertoire /install. Une fois cette opération terminée, j'ai accédé au répertoire racine et éjecté le CD :

# cd /
# eject cdrom

J'ai ensuite inséré le deuxième CD dans le lecteur de CD-ROM, accédé au répertoire Tools et exécuté le script add_to_install_server :

# cd /cdrom/cdrom0/Solaris_10/Tools
# ./add_to_install_server /install

J'ai procédé ainsi jusqu'à ce que tous les fichiers des cinq CD du SE et du CD de langue soient copiés dans le répertoire /install.

J'ai remis le disque 1 dans le lecteur de CD-ROM du serveur Sun Enterprise 3500 et accédé au répertoire Misc. J'ai ensuite copié le script check afin de pouvoir l'utiliser pour vérifier les fichiers profil etrules que j'envisageais de créer dans les prochaines étapes :

# cd /cdrom/cdrom0/s0/Solaris_10/Misc/jumpstart_sample
# cp check /install/config
# cd /install/config

Préparation des fichiers de configuration

Voici maintenant la partie plaisante, qui consiste à écrire les fichiers destinés à démarrer et exécuter Solaris JumpStart.

Vous pouvez copier les exemples du disque et les modifier à votre guise. Connaissant l'usage de mon système, j'ai écrit mes propres fichiers avant d'exécuter le script check pour vérifier qu'ils fonctionnaient et pour créer le fichier rules.ok.

Le premier fichier créé était sysidcfg. Ce fichier indique au client quels seront ses paramètres après le démarrage initial. Si vous n'ajoutez pas d'informations dans ce fichier, le système vous demande de fournir toutes les informations requises. J'ai utilisé vi pour créer mon fichier dans /install/config:

# vi sysidcfg
system_locale=en_US.ISO8859-1
timezone=US/Pacific
timeserver=localhost
terminal=vt100
name_service=NONE
security_policy=NONE
root_password=<encrypted password from /etc/shadow>
network_interface=dmfe0 {hostname=<hostname of client>
                         netmask=<your network's netmask>
                         protocol_ipv6=no
                         default_route=<your gateway>}

:wq

Le fichier rules vient ensuite. Ce fichier est très facile pour ma configuration, puisque j'ai seulement un serveur à configurer. Le fichier rules peut avoir un grand nombre d'usages. Si vous examinez le fichier d'exemple rules inclus dans Solaris CD, vous aurez une idée de ce que vous pouvez en faire. Voici ce que j'ai utilisé :

# vi rules
hostname <hostname of client> - profile -

:wq

Les deux symboles "-" doivent être dans le code ci-dessus, sauf si vous utilisez un script begin et un script finish. Dans ce cas, vous remplacez les symboles "-" par le nom de vos scripts.

Veillez à changer les autorisations sur vos scripts avec chmod 755 avant de démarrer votre client. L'exemple de script rules du CD Solaris CD sous /Solaris_10/Misc/jumpstart_samples fournit des informations plus détaillées.

Vous devez ensuite créer votre fichier profile en utilisant le nom de fichier que vous avez spécifié dans le fichier rules. C'est marrant comme les choses se réfèrent les unes aux autres. Vous devez utiliser le nom de fichier profil que vous avez indiqué dans le fichier rules. Ayant spécifié profile comme nom de fichier dans mon fichier rules, il est intitulé profile. Mon fichier profile indique comment mon client sera configuré en termes de taille de partitions, de type d'installation et de type de client.

Là encore, j'ai utilisé vi pour créer mon fichier, mais le CD Solaris contient un certain nombre d'exemples que vous pouvez éditer selon vos besoins. L'important est de connaître le type d'installation correct.

L'option cluster spécifie le type d'installation en fonction du groupe logiciel. Le tableau suivant indique les valeurs disponibles.

Tableau 1 : valeurs des groupes logiciels et noms de groupe

Groupe logiciel Reduced Network Support
SUNWCrnet
Groupe logiciel Core System Support
SUNWCreq
Groupe logiciel End User Solaris
SUNWCuser
Groupe logiciel Developer Solaris
SUNWCprog
Groupe logiciel Entire Solaris
SUNWCall
Groupe logiciel Entire Solaris Plus OEM Support
SUNWCXall

Voici ce que j'ai utilisé :

# vi profile
install_type      initial_install
cluster           SUNWCXall
partitioning      explicit
filesys           c0t0d0s0 14000 /
filesys           c0t0d0s1 2048 /var
filesys           c0t0d0s3 1024 swap
filesys           c0t0d0s7 19500 /export/home
system_type       standalone

:wq

L'étape suivante consistait à vérifier que je n'avais pas commis d'erreur dans mes fichiers. Pour cela, j'ai simplement exécuté check.

# ./check

Si tout se passe bien, vous avez un fichier intitulé rules.ok dans votre répertoire /install/config.

# ls -l
-rwxr-xr-x   1 root     root   59701 Jan  8 10:16 check
-rw-r--r--   1 root     root     232 Jan  8 10:14 profile
-rw-r--r--   1 root     root      32 Jan  8 10:15 rules
-rw-r--r--   1 root     root      57 Jan  8 10:16 rules.ok
-rw-r--r--   1 root     root     278 Jan  8 09:33 sysidcfg

Configuration du serveur pour qu'il démarre correctement

Vient maintenant l'amusement de configurer le serveur pour qu'il démarre; Vous devez obtenir l'adresse MAC du client. Vous pouvez l'obtenir selon deux méthodes : exécuter ifconfig -a sur le client ou l'obtenir de l'invite openboot.

Une fois l'adresse MAC obtenue, ajoutez-la au fichier /etc/ethers. Si vous ne disposez pas de ce fichier, créez-le :

# cd /etc
# vi ethers
0a:3b:ba:f5:d1:e6 <client hostname>

:wq

Ajoutez ensuite votre client au fichier /etc/hosts :

# vi hosts
<ip.address.for.client> <client hostname>

:wq

Vous devez maintenant préparer le serveur de d'initialisation. Vérifiez que vous avez le disque 1 du SE Solaris dans le lecteur de CD-ROM et exécutez setup_install_server à nouveau, cette fois en spécifiant l'option -b et le répertoire /install/boot :

# cd /cdrom/cdrom0/s0/Solaris_10/Tools
# ./setup_install_server -b /install/boot

Une fois terminé, vous pouvez éjecter le CD :

# cd /
# eject cdrom

Configuration du client

Le moment est venu de configurer le client. J'ai exécuté les commandes suivantes : Je les ai exécutées directement à partir du CD dans le répertoire /install.

Remarque : il est très important d'exécuter les commandes suivantes à partir de votre image d'installation, et non du CD, car l'emplacement depuis lequel vous exécutez les commandes détermine où le client recherchera l'image d'initialisation. Si vous installez à partir du CD, le client cherchera l'image d'initialisation sur le CD et, à moins que vous n'utilisiez NFS pour partager le lecteur de CD-ROM sur votre serveur, la commande échouera.

# cd /install/Solaris_10/Tools
# ./add_install_client -e 0a:3b:ba:f5:d1:e6 -s
<server hostname>:/install -c
<server hostname>:/install/config -p
<server hostname>:/install/config <client hostname>
sun4u

La commande précédente crée tous les fichiers utiles pour que le client puisse démarrer et trouver tout le nécessaire pour commencer l'installation du SE Solaris. La signification des indicateurs est décrite ci-dessous :

  • -e spécifie l'adresse MAC du client.
  • -s spécifie l'emplacement des fichiers d'installation du serveur.
  • -c spécifie l'emplacement de la configuration Solaris JumpStart.
  • -p spécifie l'emplacement du fichier sysidcfg.
  • sun4u spécifie l'architecture du client.

Démarrage du client

Vous êtes désormais prêt à démarrer le client afin qu'il trouve le serveur.

Remarque : sur mon serveur Sun Netra X1, je pouvais accéder à la console LOM (lights out management) en appuyant sur #. et en tapant break à l'inviteLOM>. Faites en sorte d'obtenir l'invite OpenBoot.

Sur le client, placez-vous sur l'invite OpenBoot OK et exécutez la commande suivante :

ok> boot net - install

Lorsque j'ai exécuté cette commande, le client s'est connecté à mon serveur, a téléchargé le SE et a commencé à l'installer. Tout ce que j'ai eu à faire a été de lui indiquer d'utiliser le paramètre par défaut IPv4 détecté, et il s'est chargé du reste, y compris redémarrer et fonctionner en mode console.

A propos de l'auteur

Lucas Williams est administrateur système UNIX et Microsoft Windows depuis 15 ans. Il a fait l'expérience de différentes formes de Linux, du SE Solaris (versions 2.6 à 10), Novell Networking, et Microsoft Windows NT 3.51 par l'intermédiaire de Microsoft Windows Server 2008. Il écrit des scripts pour faciliter la gestion de différents systèmes et effectue des tests béta de nouvelles technologies avant de les déployer en environnement de production. Il travaille actuellement sur les différentes façons dont la virtualisation peut servir au déploiement de serveurs en environnement de production.

The information and links on this page have been provided by a BigAdmin user. The submitter is solely responsible for such information and links. Sun is not responsible for the availability of external sites or resources, and does not endorse and is not responsible or liable for any content, advertising, products, or other materials on or available from such sites or resources. Sun will not be responsible or liable, directly or indirectly, for any actual or alleged damage or loss caused by or in connection with use of or reliance on the information posted here, or goods or services available on or through any external site or resource.
 
 
BigAdmin